Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4815 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs

  Classement de mots

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Classement de mots

n°190372
Mikus
Posté le 16-11-2002 à 16:16:30  profilanswer
 

Salut!  
 
 
J'aurais besoin de classer les mots d'une liste par ordre de longueur (du plus petit au plus long).  
Quelqu'un saurait comment faire ça en ligne de commande?  
 
Ca me rendrait un grand sercice!  
 
 
merci!

mood
Publicité
Posté le 16-11-2002 à 16:16:30  profilanswer
 

n°190385
fabsk
Posté le 16-11-2002 à 16:52:12  profilanswer
 

Si tu as un un mot par ligne, une solution qui me vient a l idee:
 
awk '{print length($0)";"$0}' .bashrc | sort -n | cut -d ";" -f "2-"
 
l'appel a 'awk' affiche chaque ligne precédée par sa longueur et ";". Apres "sort" tri par la longueur (au debut de la nouvelle ligne), puis "cut" supprimer la longueur et le ";".

n°190388
Mikus
Posté le 16-11-2002 à 17:00:26  profilanswer
 

Génial!
 
 
Scuse mon ignorance (quand il y a juste une commande et une option, ça va) mais je mets le nom du fichier où dans cette superbe ligne de commande ??
 
merci!
:-)

n°190394
Jak
Back to Slack !
Posté le 16-11-2002 à 17:16:55  profilanswer
 

Tu fais un cat du fichier à partir duquel tu tubes la sortie vers cette commande, par xeemple :
 
~$ cat fichier_a_traiter.txt | awk '{print length($0)";"$0}' .bashrc | sort -n | cut -d ";" -f "2-"
 
Ça va te donner ce que tu veux sur la sortie standard, à rediriger dans un nouveau fichier avec >

n°190395
Mikus
Posté le 16-11-2002 à 17:25:22  profilanswer
 

cat listeA | awk '{print length($0)";"$0}'.bashrc | sort -n | cut -d ";" -f "2-"
 
awk: cmd. line:1: {print length($0)";"$0}.bashrc
awk: cmd. line:1:                        ^ parse error
 
mouais... voici la réponse... :-(
 

n°190398
Jak
Back to Slack !
Posté le 16-11-2002 à 17:42:37  profilanswer
 

Non, non, ça marche très bien, sauf que Fabsk a dû avoir un problème pendant son copier/coller :)
J'avais pas fait attention non plus. Ya un .bashrc qui traîne où il faut pas. Tiens, ça, ça marche (testé)
 
~$ cat listeA | awk '{print length($0)";"$0}' | sort -n | cut -d ";" -f "2-"


Message édité par Jak le 16-11-2002 à 17:43:20
n°190401
Mikus
Posté le 16-11-2002 à 17:50:02  profilanswer
 


OK! Ca marche!
 
J'ai enlevé .bashrc
 
 
 
cat listeX | awk '{print length($0)";"$0}' | sort -n | cut -d ";" -f "2-"
 
 
Merci!
:-)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs

  Classement de mots

 

Sujets relatifs
mots de passesdes mots ke je comprend pas
Plus de sujets relatifs à : Classement de mots


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)