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
A voir également:

4 réponses

jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,
while read ligne
do 
var=$(cat "$ligne" | wc)
echo -e "$ligne : $var"
done < fichier.entrée > fichier.sortie
;-))
0
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
jipicy Messages postés 41342 Statut Modérateur 4 896
 
Parce que c'est la syntaxe usuelle (utilisation d'une boucle while) pour lire un fichier ligne par ligne.
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
J'avais z'oublié, voir aussi : comment lire un fichier ligne par ligne
0
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