我正在尝试使用awk和sort按姓氏对一个名称文件进行排序。有些没有中间名。下面是一个例子:
Rachel K Green
Chandler M Bing
Ross E Geller
Phoebe Buffay
Monica E Geller
Joey F Tribbiani
我试过的是:
awk -F " " '{print $NF, $0}' names.txt | sort
这张照片:
Bing Chandler M Bing
Buffay Phoebe Buffay
Geller Monica E Geller
Geller Ross E Geller
Green Rachel K Green
Tribbiani Joey F Tribbiani
我真的明白为什么要打印姓氏然后打印整行。我不知道如何按姓氏排序,然后打印行。如果我只使用$0,不使用$NF,它不会按姓氏排序。
欢迎任何反馈。谢谢:)
最佳答案
$ awk '{print $NF, $0}' names.txt | sort -k1 | cut -d ' ' -f2-
Chandler M Bing
Phoebe Buffay
Monica E Geller
Ross E Geller
Rachel K Green
Joey F Tribbiani
cut -d ' '-f2-
通过删除为$NF
打印的最后一个字段awk
返回原始行。