2014-05-25 6 views
0

Ceci est text.txtShell par mois Trier

APR 
AUG 
DEC 
FEB 
JAN 
JUL 
JUN 
MAR 
MAY 
NOV 
OCT 
SEP 

j'avais essayer

sort -k1M text.txt 
sort -M test.txt 

Il a également ne pouvez pas trier par mois comme

Jan 
Feb 
Mar 
bla bla bla... 

Toute erreur à mon commander? merci

+1

Quelle plateforme vous travaillez sur? Est-ce que votre 'sort' supporte' -M'? Cela a fonctionné correctement sur Mac OS X 10.9.3 avec '/ usr/bin/sort', qui est GNU' sort' (version 5.93, à peine la version la plus récente). Cela fonctionnera probablement bien avec d'autres versions plus récentes de GNU 'sort'. Avez-vous défini LANG ou LC_ALL ou des variables d'environnement similaires? –

+0

Impossible de reproduire. Quelle version de 'sort' utilisez-vous? –

+0

Linux redhat 2.6.32-431.el6.x86_64, tri (GNU coreutils) 8.4 – YOHO

Répondre

1

Peut reproduire ce problème avec le tri 8.21 de GNU et un environnement local par défaut différent de l'anglais, ce qui peut être votre cas.

Tout d'abord, vérifiez le réglage actuel des valeurs date/heure:

[email protected]:~$ locale | grep -i time 

LC_TIME="it_IT.UTF-8" 

En fait le mien est pas l'anglais, donc sort -m ne fonctionnera pas comme prévu avec les noms de mois en anglais:

[email protected]:~$ cat /tmp/mesi 

AUG 
JAN 
JUL 
FEB 


[email protected]:~$ sort -M /tmp/mesi 

AUG 
JAN 
JUL 
FEB 

La solution consiste à modifier temporairement la valeur LC_TIME en une valeur anglaise:

[email protected]:~$ LC_TIME="en_EN.UTF-8" sort -M /tmp/mesi 

JAN 
FEB 
JUL 
AUG 

Ne vous inquiétez pas gâcher les choses, car après l'exécution de la commande dans laquelle la variable locale a été modifiée, sa valeur d'origine est restauré automatiquement:

[email protected]:~$ locale | grep -i time 

LC_TIME="it_IT.UTF-8" 

ont une belle journée

+0

Merci mon pote :) C'est utile – YOHO

1

1.Veuillez vérifier les symboles invisibles (non imprimables) dans votre fichier texte en utilisant par ex.

cat -v your_text_file 

ou

od -xc your_text_file|head 

2.Exclude ambiguïté en commençant « sorte --version » et sorte de votre fichier texte spécifiant le chemin absolu de tri.