这是text.txt
APR
AUG
DEC
FEB
JAN
JUL
JUN
MAR
MAY
NOV
OCT
SEP
我试过了
sort -k1M text.txt
sort -M test.txt
它也无法按月份排序
Jan
Feb
Mar
bla bla bla...
我的命令有什么错误吗? 谢谢
答案 0 :(得分:1)
1.请使用例如
检查文本文件中的不可见(非打印)符号cat -v your_text_file
或
od -xc your_text_file|head
2.通过启动“sort --version”并排序指定绝对排序路径的文本文件来排除可能的歧义。
答案 1 :(得分:1)
可以使用GNU sort 8.21和不同于英语的默认时间区域重现此问题,这可能是您的情况。
首先,检查日期/时间值的当前设置:
grille@ced10:~$ locale | grep -i time
LC_TIME="it_IT.UTF-8"
事实上我的不是英语,所以sort -m
将无法按预期使用英文月份名称:
grille@ced10:~$ cat /tmp/mesi
AUG
JAN
JUL
FEB
grille@ced10:~$ sort -M /tmp/mesi
AUG
JAN
JUL
FEB
解决方案是暂时将LC_TIME值更改为英语值:
grille@ced10:~$ LC_TIME="en_EN.UTF-8" sort -M /tmp/mesi
JAN
FEB
JUL
AUG
不要担心搞乱事情,因为在执行改变了locale变量的命令后,它的原始值会自动恢复:
grille@ced10:~$ locale | grep -i time
LC_TIME="it_IT.UTF-8"
度过愉快的一天