Ordina lessicograficamente in bash


6

Voglio che i dati vengano ordinati nel modo in cui Python li ordina, confrontando i valori ASCII. Ma il sortcomando sembra troppo intelligente per quello. Guarda. Dal '.' < '9':

$ sort
.
9
^D
.
9

$ sort
1.
19
^D
1.
19

Questi due vanno bene. Ma per qualche motivo, se aggiungo solo caratteri alla fine:

$ sort
1.c
19z
^D
19z
1.c

Probabilmente cerca di leggerlo come un numero o qualcosa del genere. Non lo voglio, voglio che ordina cose confrontando i valori ASCII di ogni personaggio. Non hai trovato un'opzione simile in manqualche idea?

Risposte:


8

Il comportamento descritto è probabilmente un effetto della locale. Disattiva le impostazioni locali per l'ordinamento:

$ echo '1.c
19z ' | LC_ALL=C sort
1.c
19z

Wow, grazie, provalo subito (il file ordinato è grande).
Valya,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.