probl=c3=a8me de tri avec sort

Le
Samy Mezani
Bonjour,

Je m'arrache les cheveux avec sort.

Soit 2 fichiers texte, avec les contenus suivants :

$ cat fichier1
"a z"
"a b"
"a"
"ac"

$ cat fichier2
"a z"@t
"a b"@t
"a"@t
"ac"@t

Je trie ces fichiers avec sort :

$ cat fichier1 | sort
"a"
"a b"
"ac"
"a z"

$ cat fichier2 | sort -t "@" -k1
"a b"@t
"ac"@t
"a"@t
"a z"@t

Pourquoi le tri est différent dans le 2ème cas ??

Ma santé mentale vous remercie par avance ! ;-)

Samy
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Samy Mezani
Le #26442669
Le 24/08/2017 à 16:49, a écrit :
Parce que le caractère de fin de chaîne est avant tout autre caractère, arobase compris.

Merci Nicolas,
Pourrais-tu détailler, je ne comprend pas trop ta phrase.
Merci
Samy
Marc Chantreux
Le #26442681
salut Samy,
je serais heureux de lire si qq1 trouve la solution. toutefois je dois
avouer que pour ma part, j'ai contourné le pb lorsque sort m'a joué ce
genre de tours:
perl -F@ -lane '
push @lines, [@F];
END { map { print join q(@), @$_ }
sort { $$a[0] cmp $$b[0] }
@lines }' <<.
"a z"@t
"a b"@t
"a"@t
"ac"@t
.
me donne bien
"a b"@t
"a z"@t
"a"@t
"ac"@t
cordialement,
marc
Publicité
Poster une réponse
Anonyme