Aide pour script unix

cora59 -  
 drup -
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. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,
    while read ligne
    do 
    var=$(cat "$ligne" | wc)
    echo -e "$ligne : $var"
    done < fichier.entrée > fichier.sortie
    ;-))
    0
    1. cora59
       
      par contre peux tu m'expliquer comment le script comprend que ligne est la premiere ligne de mon fichier en entrée


      merci
      0
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Parce que c'est la syntaxe usuelle (utilisation d'une boucle while) pour lire un fichier ligne par ligne.
    0
  3. drup
     
    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
    0