OVH Cloud OVH Cloud

Commande 'sort'

10 réponses
Avatar
c-candide
Bonjour,

Situation-type : j'ai en t=EAte une liste de 10 mots. Cette liste N'est
PAS dans un fichier texte.
Je veux les trier par ordre alphab=E9tique en utilisant l'entr=E9e
standard de la ligne de commande et la commande sort.

man sort me dit que c'est possible :

------------8<---------------------------
Si aucun fichier n'est fourni, ou si
le nom `-' est mentionn=E9, la lecture se fera depuis
l'entr=E9e standard.
------------>8---------------------------

le probl=E8me est que je ne sais pas comment mettre cela en oeuvre (j'ai
fait diverses tentatives)

Si on place la liste de mots s=E9par=E9s par des \n dans un fichier
texte, alors l=E0 oui =E7a marche.

Merci pour tout =E9claircissement

Candide

10 réponses

Avatar
JustMe
a écrit
Bonjour,

Situation-type : j'ai en tête une liste de 10 mots. Cette liste N'est
PAS dans un fichier texte.
Je veux les trier par ordre alphabétique en utilisant l'entrée
standard de la ligne de commande et la commande sort.

man sort me dit que c'est possible :

------------8<---------------------------
Si aucun fichier n'est fourni, ou si
le nom `-' est mentionné, la lecture se fera depuis
l'entrée standard.
------------>8---------------------------

le problème est que je ne sais pas comment mettre cela en oeuvre (j'ai
fait diverses tentatives)

Si on place la liste de mots séparés par des n dans un fichier
texte, alors là oui ça marche.

Merci pour tout éclaircissement

Candide


sort << EOF
mot1
mot2
mot3
...
EOF

ou

echo "mot1
mot2
mot3
..." | sort

par exemple

Avatar
c-candide


Wahou la rapidité !!

Alors j'ai pas tout compris au lieu de EOF je mets quoi, CTRL+Z ?
Et pour echo, voilà ce que je fais par exemple

[ ~]$ echo "
z
a
r
i
"


et ça me sort

z
a
r
i

ce qui ne convient pas. Pourrais-tu détailler stp , merci

Avatar
c-candide


Et pour echo, voilà ce que je fais par exemple

[ ~]$ echo "
z
a
r
i
"


et ça me sort

z
a
r
i

Oui pardon, j'avais oublié de rediriger par sort ... donc avec echo

ça marche bien.


Avatar
JustMe
a écrit


Wahou la rapidité !!

Alors j'ai pas tout compris au lieu de EOF je mets quoi, CTRL+Z ?


non, EOF ou n'importequelle chaine de caract que tu as mis apres les <<

sort << LAFINDEMALISTEALACONQUEJAIPASENVIEDEMETTREDANSUNFICHIER
a
d
f
r
t
LAFINDEMALISTEALACONQUEJAIPASENVIEDEMETTREDANSUNFICHIER

Et pour echo, voilà ce que je fais par exemple

[ ~]$ echo "
z
a
r
i
"


et ça me sort

z
a
r
i

ce qui ne convient pas. Pourrais-tu détailler stp , merci


il faut mettre "| sort" (sans les ") apres le " fermant...


Avatar
David
Le Sun, 30 Jul 2006 08:38:10 -0700, c-candide a écrit :
Si on place la liste de mots séparés par des n dans un fichier texte,
alors là oui ça marche.


echo"mot1 mot2 mot3 ... mot" | tr ' ' 'n' | sort

Avatar
Laurent DECHER
a écrit

Bonjour,

Situation-type : j'ai en tête une liste de 10 mots. Cette liste N'est
PAS dans un fichier texte.
Je veux les trier par ordre alphabétique en utilisant l'entrée
standard de la ligne de commande et la commande sort.

man sort me dit que c'est possible :

------------8<---------------------------
Si aucun fichier n'est fourni, ou si
le nom `-' est mentionné, la lecture se fera depuis
l'entrée standard.
------------>8---------------------------

le problème est que je ne sais pas comment mettre cela en oeuvre (j'ai
fait diverses tentatives)

Si on place la liste de mots séparés par des n dans un fichier
texte, alors là oui ça marche.

Merci pour tout éclaircissement

Candide



sort << EOF
mot1
mot2
mot3
...
EOF

ou

echo "mot1
mot2
mot3
..." | sort

par exemple




Ouais, y a aussi

cat | sort
Et tu tapes tous tes mots en faisant entrée après chacun, puis Ctrl+D
quand tu as fini

Aplus


Avatar
c-candide
Alors j'ai pas tout compris au lieu de EOF je mets quoi, CTRL+Z ?


non, EOF ou n'importequelle chaine de caract que tu as mis apres les <<



OK, ça marche bien, EOF ne veut donc pas dire ici End Of File mais est
un marqueur comme un autre. Merci de tes réponses instructives, je
savais même pas que << existait.


Avatar
c-candide

Si on place la liste de mots séparés par des n dans un fichier tex te,
alors là oui ça marche.


echo"mot1 mot2 mot3 ... mot" | tr ' ' 'n' | sort


OK très bien (je connaissais même pas la commande tr).


Avatar
Matthieu Moy
Laurent DECHER writes:

Ouais, y a aussi

cat | sort
Et tu tapes tous tes mots en faisant entrée après chacun, puis Ctrl+D
quand tu as fini


UUOC.

sort, tout court.

--
Matthieu

Avatar
c-candide

Bonjour,

Situation-type : j'ai en tête une liste de 10 mots. Cette liste N'est
PAS dans un fichier texte.
Je veux les trier par ordre alphabétique en utilisant l'entrée
standard de la ligne de commande et la commande sort.

man sort me dit que c'est possible :

------------8<---------------------------
Si aucun fichier n'est fourni, ou si
le nom `-' est mentionné, la lecture se fera depuis
l'entrée standard.
------------>8---------------------------

le problème est que je ne sais pas comment mettre cela en oeuvre (j'ai
fait diverses tentatives)



Autre méthode hyper-simple, je comprends pas que je l'ai pas vue tout
de suite :

[ ~]$sort #n
printemps
été
automne
hiver

#CTRL+D
automne
été
hiver
printemps