Script nombre de lignes identiques dans un fichier

Script nombre de lignes identiques dans un fichier - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 10-03-2005 à 20:21:11    

Bonjour,
j'ai un fichier du genre
 
AAAAAA
AAAAAA
AAAAAA
BBBBBB
BBBBBB
CCCCCC
 
A partir de ce fichier, je voudrais faire un autre fichier qui n'affiche qu'une occurence de chaque ligne répétée et en face le nombre de fois que la ligne existe.
 
Exemple ici :
 
AAAAAA 3
BBBBBB 2
CCCCCC 1
 
Comment faire ?

Reply

Marsh Posté le 10-03-2005 à 20:21:11   

Reply

Marsh Posté le 10-03-2005 à 21:59:57    

Un petit peu de shell vite fait:
 

cat test | while read ligne; do [ ! -z $prec ] && [ "$ligne" != "$prec" ] && echo $prec $count && let count=0 || let count=count+1; prec=$ligne; done


 
Peut-être pas optimal, mais ça a l'air de marcher ... (il faut rajouter un retour chariot à la fin de ton fichier d'entrée, dans mon exemple il s'appelle "test" )


Message édité par [Albator] le 10-03-2005 à 22:00:44
Reply

Marsh Posté le 10-03-2005 à 22:07:09    

et uniq -c nomdufichier | sort > fichiertrié  
 
c pas mieux?

Reply

Marsh Posté le 10-03-2005 à 22:13:59    

Je n'ai pas compris sa demande de cette manière, mais en relisant, je vois que j'ai sans doute tort.
 
Pour moi son fichier d'exemple aurait pu aussi bien être:
 
AAAAAAA
AAAAAAA
CCCCCCC
BBBBBBB
AAAAAAA
CCCCCCC
 
et que le résultat attendu soit:
 
AAAAAAA 2
CCCCCCC 1
BBBBBBB 1
AAAAAAA 1
CCCCCCC 1
 
C'est-à-dire qu'il cherchait à afficher le nombre de lignes identiques et consécutives, pas simplement compter les lignes identiques dans tout le fichier ...

Reply

Marsh Posté le 11-03-2005 à 13:48:42    

TIP TOP avec uniq c'est exactement ça !!!!
Merci les gars vous êtes cools, je ne pensais pas à cette commande !
Ô Joie !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed