Rechercher : dans
Par :

Aide pour script unix

Dernière réponse le 28 fév 2007 à 21:47:56 cora59, le 28 fév 2007 à 16:13:38 
 Signaler ce message aux modérateurs

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

1

jipicy, le 28 fév 2007 à 17:19:53

Salut,

while read ligne
do 
var=$(cat "$ligne" | wc)
echo -e "$ligne : $var"
done < fichier.entrée > fichier.sortie
;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

2

cora59, le 28 fév 2007 à 17:37:58

Par contre peux tu m'expliquer comment le script comprend que ligne est la premiere ligne de mon fichier en entrée


merci

Répondre à cora59

3

jipicy, le 28 fév 2007 à 17:46:44

Parce que c'est la syntaxe usuelle (utilisation d'une boucle while) pour lire un fichier ligne par ligne.
Z'@+...che.

JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

4

jipicy, le 28 fév 2007 à 19:14:26

J'avais z'oublié, voir aussi : comment lire un fichier ligne par ligne
Z'@+...che.

JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

5

 drup, le 28 fév 2007 à 21:47:56

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

Répondre à drup