主页 > Linux教程 > 正文

Linux指令依据某一列对文件内容去重

咱们或许常常遇到文件内容排序去重处理的工作,运用 linux 指令能够很便利的处理,sort 指令在处理文件排序和去重中起着非常重要的左右,是文件处理的利器。

比方有以下文件内容:

vztug.com

4345            15              12121
4145            7               fdf
4245            5               dfsf
1345            76              432423
0693            2               4345
06a7            82              4e
06a9            58              e33
4345            68              343
06c1            56              453
06d7            145             45678
4345            117             21
06e3            280             76
4345            7               3434
4345            48              80
06f1            463             121
4345            3847            131
070b            1236            64
070d            3343            77
0713            104235          90
0715            6               12
0726            121             97798


想要依照第二列排序去重,怎么做呢?其实只需要 sort 指令就能够处理了

sort -t $'\t' -k 2 -u vztug.com


sort 排序指令 

-t 指定分隔符为‘\t’ 

-k 指定第三列 

-u 去重


sort的其他一些选项: 

-r 降序摆放 

-o 把排序成果输出到源文件


sort默许是把成果输出到规范输出,所以需要用重定向才能将成果写入文件,形如 

sort filename>newfile 

假如将成果输出到原文件,用重定向相当于清空


-n 看为数字来比较


你有没有遇到过10比2小的状况。我横竖遇到过。呈现这种状况是因为排序程序将这些数字按字符来排序了,排序程序会先比较1和2,明显1小,所以就将10放在2前面喽。这也是sort的一贯作风。 

咱们假如想改动这种现状,就要运用-n选项,来告知sort,“要以数值来排序”!


-f 会将小写字母都转换为大写字母来进行比较,亦即疏忽巨细写


-c 会检查文件是否已排好序,假如乱序,则输出第一个乱序的行的相关信息,最终回来1


-C 会检查文件是否已排好序,假如乱序,不输出内容,仅回来1


-M 会以月份来排序,比方JAN小于FEB等等


-b 会疏忽每一行前面的一切空白部分,从第一个可见字符开端比较。


上一篇:Git疏忽提交规矩.gitignore装备总结
下一篇:CentOS下检查体系版别的4种办法

PythonTab微信大众号:

Python技能交流合作群 ( 请勿加多个群 ):

群1: 87464755

群2: 333646237

群3: 318130924

群4: 385100854