仅按姓氏的字母顺序对文件进行排序

仅按姓氏的字母顺序对文件进行排序

我感兴趣的是按名字和姓氏的顺序对包含条目的文本文件进行排序

[前任]

约翰·多伊

我对仅按姓氏对列表进行排序感兴趣。这是 sed 还是 awk 的工作?我可以修改命令sort以仅按第二个单词或姓氏排序吗?

答案1

简单地

sort -k2 < your_file > out_file

-k指定排序键;默认为字段编号,字段之间用空格分隔。

man sort

  -k, --key=KEYDEF
          sort via a key; KEYDEF gives location and type

KEYDEF 是 F[.C][OPTS][,F[.C][OPTS]],表示起始和终止位置,其中 F 是字段编号,C 是字段中的字符位置;两者的起点均为 1,终止位置默认为行尾。如果 -t 和 -b 均无效,则字段中的字符将从前一个空格的开头开始计算。OPTS 是一个或多个单字母排序选项 [bdfgiMhnRrV],它们会覆盖该键的全局排序选项。如果没有给出键,则使用整行作为键。

例子:

[romano:~/tmp] % cat test.txt
a a
b c
d r
k a
t 6
[romano:~/tmp] % sort -k2 < test.txt
t 6
a a
k a
b c
d r

相关内容