前提:
文档为格式化好的数据。比如一行是一个json。
判断总共有多少行数据:
grep No f.txt | wc -l
查询重复数据有多少行:
grep No f.txt | sort -u | wc -l
找到重复的那行数据:(如果每行的json数据大,可忽略此操作)
grep No f.txt |sort|uniq -d
去除重复数据:
awk -v No=2 '!seen[$No]++' f.txt > output.txt
去重命令的工作原理是:
-
awk
:文本处理工具。 -
-v No=2
:设置awk变量No
为2,这是我们要去重的列号。 -
!seen[$No]++
:前缀运算符!
用来判断数组seen
中是否存在当前行的第No
列的值。如果不存在,则执行后面的操作,即打印当前行。 -
input.txt
:输入文件名。 -
> output.txt
:将结果输出到output.txt
文件中。
请确保你的输入文件是以空格或者制表符分隔的,并且列号是从1开始计数的。如果列与列之间的分隔符是其他字符,可以通过-F
选项来指定分隔符。