sort排序
多列文本按照指定列排序
例如有文本格式
FirstName, FamilyName, Address, PhoneNumber需要按照FamilyName排序。
sort工具提供了-k参数按照某列或多列排序。例如首先按照FamilyName排序然后按照FirstName排序:
sort -k 2,2 -k 1,1 file.txt-k, --key=POS1[,POS2]:
从POS1开始排序key,终止于POS2key。
POS是F[.C][OPTS],F是字段编号,C是该字段的字符位置。
-t, --field-separator=SEP
设置 SEP 替代默认的空白分隔符
按照数值排序
sort默认是按照ASCII码排序,如果要按照数值排序,则使用参数 -n
上述结合 -k -n 非常常用的排查场景,例如我们统计IP地址(原日志 ip.log 的第5列)出现频率并排序:
cat ip.log | awk '{print $5}' | sort | uniq -c | sort -k 1 -n参考
Last updated
Was this helpful?