Aide pour script unix

Bonjour,

je voudrais créer un script unix qui :

J'ai dans 1 fichier de paramètres des noms de fichiers par ex :
fichier A
fichier B
....

Je veux que le script prenne ce fichier en entrée et que pour chaque nom de fichier (fichier A, fichier B), il compte le nombre de lignes, de mots et de caracteres et mette le résultat dans un troisième fichier style :
nom fichier | nbre ligne|nbre de mots|nbre de caractères

merci pour votre aide je connais pas grand chose à unix, à part qu'il faut utiliser le shell wc

cora59
Configuration: Windows XP
Internet Explorer 6.0

4 réponses

  1. Modérateur
    Salut,
    while read ligne
    do 
    var=$(cat "$ligne" | wc)
    echo -e "$ligne : $var"
    done < fichier.entrée > fichier.sortie
    ;-))
    1. par contre peux tu m'expliquer comment le script comprend que ligne est la premiere ligne de mon fichier en entrée

      merci
  2. Modérateur
    Parce que c'est la syntaxe usuelle (utilisation d'une boucle while) pour lire un fichier ligne par ligne.
    1. ou bien avec une boucle for , en comptant le nombre de
      lignes et de caracteres : cat fichier | wc -l et cat fichier | wc -m :

      repertoire oû se trouvent les fichiers texte :

      cd /repertoire
      for file in `ls -1 *` ; do
      nbl=$(cat "$file" | wc -l) ;
      nbc=$(cat "$file" | wc -m) ;
      echo "fichier $file : nb-ligne: $nbl nb-carac: $nbc" ;
      echo "fichier $file nb-ligne: $nbl nb-carac: $nbc" >> ~/compteur;sleep 2;
      done