Script bash

Bonjour,

je suis débutant dans linux qui peut m'expliquer ce code :

cat *.tex \
| sed ’/\\begin{figure}/,/\\end{figure}/d’ \
| sed ’/\\begin{table}/,/\\end{table}/d’ \
...
| sed ’/\\documentclass/d’ \
| sed ’/\\usepackage/d’ \
| sed ’/\\input/d’ \
| sed ’s/\\item//’ \
| sed ’s/%.*$//’\
| grep -v "^%" \
| tr "~" " " \
| tr "\t" "\n"\
| tr " " "\n"\
| grep -v ’\\’ \
| wc -w

3 réponses

  1. Contributeur
    'lut,
    ça ressemble fort à un essai (bien foireux) d'extraire le contenu texte d'un document LaTeX pour en indiquer le nombre de mots.
    Tous les
    sed
    se débarrassent des éléments de structure (commande
    d
    elete conditionnée par des expressions régulières), les
    grep
    et
    tr
    enlèvent les caractères d'espacement et les transforment en retour à la ligne, et finalement
    wc -w
    compte le nombre de mots.
    1. Salut,

      Pour te mettre sur une piste, il parse "une source" ( probablement du code ) et retourne une valeur ( decimal ) attentue selon certains paramétres.

      A plus,
      1. Contributeur
        il parse du latex
    2. salut,

      pas moi. c'est un trop mauvais code :
      trop de
      sed
      , trop de
      tr
      , trop de
      grep
      ,
      alors qu'un seul
      sed
      bien construit aurait suffit.

      en plus, c'est quand même à toi de faire le boulot.
      propose une interprétation, et on te dira où tu as bon, où tu te trompes, et on approfondira les notions confuses.

      forum d'entraide, pas forum "fais mes devoirs".