Boucle unix (case)

Résolu/Fermé
poireau - 2 févr. 2009 à 08:21
 poireau - 2 févr. 2009 à 11:44
Bonjour a tous ,

je souhaiterai faire une boucle qui compte le nombre de ligne d'un fichier et qui reagisse en fonction du resultat.

pour commencer je fait ceci :

for i in $( cat B1010000.txt |wc -l )
do expr 100 - $i
done


ensuite je voudrait dire :

si $i < 100 do cat A.txt B.txt
si $i>= 100 do cat A.txt C.txt

je bloque un peu...

3 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
2 févr. 2009 à 10:23
Salut,
if [ "$i" -le 100 ]
then
cat A.txt B.txt
else
cat A.txt C.txt 
fi
;-))
1
Comme toujours ça marche !
merci jipicy !!

Je galere depuis un moment la dessus, et la réponse parait tellement simple...
Ptite question ca fait combien de temps que tu pratique le langage unix ??
J'aimerais bien arriver a la meme maitrise d'Unix un jour =)

++
0
Ah ben je m'aperçois que tu utilises -le que je connaissais pas =)
pour info pour les débutants :

-eq
est égal à
if [ "$a" -eq "$b" ]

-ne
n'est pas égal à
if [ "$a" -ne "$b" ]

-gt
est plus grand que
if ["$a" -gt "$b" ]

-ge
est plus grand ou égal à
if [ "$a" -ge "$b" ]

-lt
est plus petit que
if [ "$a" -lt "$b" ]

-le
est plus petit ou égal à
if [ "$a" -le "$b" ]
0