1.sort命令将输入文件看做有多条记录组成的数据流,记录有可变宽度的字段组成,以换行符作为定界符,sort和awk一样,将记录分成多个域处理,默认域分隔符是空格。
sort 选项 输入文件
[root@zhu1 ~]# nl zhu.txt 1 zhang3:qian shan niao feijue 66 2 li4:wan jing ren zong mie 89 3 wang5:du diao han jiangxue 33 [root@zhu1 ~]# sort zhu.txt li4:wan jing ren zong mie 89 wang5:du diao han jiangxue 33 zhang3:qian shan niao feijue 66
sort命令默认根据第一域对数据记录进行排序,如果第一域相同根据第2域排序,以此类推,默认与分割符为空格
常用的选项有:
-c :测试文件是否已经排序
-k :指定排序的域
[root@zhu1 ~]# sort zhu.txt li4:8 89 wang5:2 33 zhang3:99 66 [root@zhu1 ~]# sort -k2 zhu.txt wang5:2 33 zhang3:99 66 li4:8 89
-m :合并两个已排序的文件
-n :根据数字大小进行排序
[root@zhu1 ~]# nl zhu.txt 1 zhang3:99 66 2 li4:8 299 3 wang5:2 33 [root@zhu1 ~]# sort -k2 zhu.txt li4:8 299 wang5:2 33 zhang3:99 66 [root@zhu1 ~]# sort -k2n zhu.txt wang5:2 33 zhang3:99 66 li4:8 299
-o :将输出重定向到指定文件
-r:将排序结果你想显示
[root@zhu1 ~]# sort zhu.txt li4:8 89 wang5:2 33 zhang3:99 66 [root@zhu1 ~]# sort -r zhu.txt zhang3:99 66 wang5:2 33 li4:8 89
默认是升序,-r参数表示降序
-t :改变域分隔符
[root@zhu1 ~]# sort -k2 zhu.txt wang5:2 33 zhang3:99 66 li4:8 89 [root@zhu1 ~]# sort -t: -k2 zhu.txt wang5:2 33 li4:8 89 zhang3:99 66
-t与:号之间没有空格
-k与2之间没有空格
-u :去除结果中重复的行
转载于:https://blog.51cto.com/zhujiangtao/1283087