如何排序和忽略空格?

时间:2019-05-12 10:39:59

标签: linux bash shell sorting

我正在尝试对文件进行排序,但无法获得所需的结果。 我有这个文件:

742550111       aaa aaa aaa aaa aaa     2008    3       1       1
5816470687      aa a dissertation for the       933     2       2       2

每个字段都由一个表格隔开,我想在第二列上进行排序。

当我尝试sort test.txt -t\t -k 2时,输出与文件中的相同。 但是我想要的输出是:

5816470687      aa a dissertation for the       933     2       2       2
742550111       aaa aaa aaa aaa aaa     2008    3       1       1

我认为这是因为 sort 会忽略单词之间的空格。

所以我尝试使用以下命令:LC_ALL=C sort test.txt -t\t -k 2,但是它仍然不起作用。

你有什么想法吗?

1 个答案:

答案 0 :(得分:2)

Bash将$'\t'替换为真实标签:

LC_ALL=C sort file -t $'\t' -k 2 

输出:

5816470687      aa a dissertation for the       933     2       2       2
742550111       aaa aaa aaa aaa aaa     2008    3       1       1