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. 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".
    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