当我对foo
和进行排序时foo1
,我希望foo
它们排在第一位,这在 unix 中通常就是发生的情况sort
。
$ echo -e "foo1\nfoo" | sort
foo
foo1
但是当我添加下划线并使用-t
和-k
选项时,它不会产生相同的排序顺序。
$ echo -e "foo1_3\nfoo_3" | sort -t_ -k1
foo1_3
foo_3
foo_3
使出现在 之前应使用的正确选项集是什么foo1_3
?我使用的LC_COLLATE=C
是 Ubuntu 14.04。
答案1
使用
echo -e "foo1_3\nfoo_3" | sort -t_ -k1,1
`-k POS1[,POS2]' `--key=POS1[,POS2]'
Specify a sort field that consists of the part of the line between
POS1 and POS2 (or the end of the line, if POS2 is omitted),
_inclusive_.