sort 命令中 -k、-t 选项的用法
需求
假设有个 result_test_upload.log 的文件,里面存放着一些 FastDFS 系统中的 fileid。文本内容如下:
group1/M00/04/08/wKhwglHq1rqAYO2oAAAoAChSBpE0502682
group2/M00/05/06/wKhwglHq2CGAIs8AAAAoAChSBpE9287977
......(略)......
如何统计出分配到每个 group 的文件的总和并将其按 group1、group2、group3 的顺序列出来,以方便观察是否所有的 fileid 均匀的分配到 FastDFS 的 group 中?
方法
cat result_test_upload.log | grep -o group[0-9][0-9]* | sort -n -t p -k 2| uniq -c
其中,grep -o group-0-9][0-9].*
已经把每个 group 名截取出来了,sort -t p
表示以 p 为分隔,-k 2
表示按以 p 为分隔的第二个域来排序,也就是 group1、group2、group3…中的1、2、3。-n 选项则很简单,表示按照group1、group2、group3…groupn 的顺序排列。
通过这一行命令,就能得到类似于:
999 group1
998 group2
998 group3
997 group4
.......
的统计结果了。