Trie et calcul sur ligne de fichier

Résolu/Fermé
mosta - 18 nov. 2007 à 20:26
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 20 nov. 2007 à 20:00
Bonjour,


Je suis à la recherche d'une commande ou d'un script me permettant de calculer et de regrouper le nombre de lignes identiques dans un même fichier et ensuite de les trier de maniére décroissant.
Pour information je travail sur un systême AIX (unix) et le shell utilisé est le ksh.
Merci d'avance pour votre aide.

Cdlt.
A voir également:

6 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
18 nov. 2007 à 20:34
Salut,

Un petit exemple de fichier d'entrée et du résultat escompté en sortie, please, pour une aide plus efficace ;-))
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
18 nov. 2007 à 21:03
Salut,

moi je pense à une solution en Perl ;-))
ça te va?
0
Pour l'exemple ça va être compliqué mais je vais essayer d'être plus précis pour le résultat en sortie.
J'ai un fichier d'environ 40 000 lignes qui ont pour champ $5 un code barre et donc je voudrais trier le fichier afin que les codes barres qui apparaissent le plus souvent remontent en premier dans le ficier trié.Et si je pouvais connaître le classement des codes qui remontent le plus souvent ce serait le top.

Many thanks.
0
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
18 nov. 2007 à 23:06
Bon je sais pas si j'ai tout bien compris, mais voilà un exemple que tu pourras adapter en fonction de ton fichier, notamment avec les options de "sort" (pour le tri sur le champ "sort +4" dans ton cas, en fonction du séparateur de champs à prendre en compte) ou en employant "awk" :
[tmpfs]$ Z="E\nA\nB\nE\nE\nC\nA\nD\nB\nE\nB\nA\nE\nF\nB\nE\nG\nA\nH\nA\nC\nI\nJ"

[tmpfs]$ echo -e "$Z"

E
A
B
E
E
C
A
D
B
E
B
A
E
F
B
E
G
A
H
A
C
I
J

[tmpfs]$ echo -e "$Z" | sort | uniq -dc | sort -nr

      6 E
      5 A
      4 B
      2 C

[tmpfs]$
;-))
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour,

Merci, jipicy ça marche et c'est exactement ce qu'il me fallait.
J'ai essayé cet aprés midi.
Merci beaucoup.
0
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
20 nov. 2007 à 20:00
De rien ;-))
0