Linux shell根据第二列sorting文件?
我有这样的文件:
FirstName, FamilyName, Address, PhoneNumber
我怎样才能按FamilyNamesorting?
如果这是UNIX:
sort -k 2 file.txt
您可以使用多个-k
标志对多个列进行sorting。 例如,按姓氏sorting,然后作为联络中断者的名字:
sort -k 2,2 -k 1,1 file.txt
“人sorting”的相关选项:
-k,–key = POS1 [,POS2]
在POS1开始一个键,在POS2(结束点1)
POS是F [.C] [OPTS],其中F是字段号,C是字段中的字符位置。 OPTS是一个或多个单字母订购选项,它会覆盖该键的全局订购选项。 如果没有键,则使用整行作为键。
-t,–field-separator = SEP
使用SEP而不是非空白转换
要仅按第二个字段进行sorting(因此,在第二个字段匹配的位置,具有匹配的那些行保持原始顺序,而不对其他字段进行sorting):
sort -k 2,2 -s orig_file > sorted_file
sort -nk2 file.txt
因此,您可以更改列号。
FWIW,这是一个sorting方法,用于显示哪些进程正在使用最大的内存。
memstat | sort -k 1 -t':' -g -r | less
sorting选项设置为第一列,使用:作为列分隔符,数字sorting和反向sorting。