shell中删除文件中重复行的方法
2014-03-13 00:00
706 查看
Linux下文本处理工具很丰富很强大,例如这样一个文件:
可用以下方法去除重复行:
1.使用uniq/sort删除重复行
注意:单纯uniq是不行的。
这里我做了个简单的测试,当file中的重复行不再一起的时候,uniq没法删除所有的重复行。经过排序后,所有相同的行都在相邻,因此unqi可以正常删除重复行。
2.使用用sort+awk命令
注意:单纯awk同样不行,原因同上。
也可以使用 awk '!i[$1]++' log;
3.用sort+sed命令,同样需要sort命令先排序。
cat log www.jb51.net 192.168.1.1 www.jb51.net 192.168.1.1 www.jb51.net 192.168.1.2 ffffffffffffffffff ffffffffffffffffff eeeeeeeeeeeeeeeeeeee fffffffffffffffffff eeeeeeeeeeeeeeeeeeee eeeeeeeeeeeeeeeeeeee gggggggggggggggggggg
可用以下方法去除重复行:
1.使用uniq/sort删除重复行
注意:单纯uniq是不行的。
shell> sort -k2n file | uniq > a.out
这里我做了个简单的测试,当file中的重复行不再一起的时候,uniq没法删除所有的重复行。经过排序后,所有相同的行都在相邻,因此unqi可以正常删除重复行。
2.使用用sort+awk命令
注意:单纯awk同样不行,原因同上。
shell> sort -k2n file | awk '{if ($0!=line) print;line=$0}'
也可以使用 awk '!i[$1]++' log;
3.用sort+sed命令,同样需要sort命令先排序。
shell> sort -k2n file | sed '$!N; /^\(.*\)\n\1$/!P; D'
相关文章推荐
- shell中删除文件中重复行的方法
- shell命令find删除修改后带尾巴的重复的文件
- php删除文本文件中重复行的方法
- 使用python读取txt文件的内容,并删除重复的行数方法
- shell命令find删除修改后带尾巴的重复的文件
- 删除文本文件行号的小方法(shell,sed)
- shell脚本实现查找文件夹下重复的文件,并提供删除功能
- shell脚本实现查找文件夹下重复的文件,并提供删除功能
- shell命令find删除修改后带尾巴的重复的文件
- Linux—使用Shell命令清空或删除大文件内容的方法
- 超简单的删除文件中重复行的方法及详解
- shell脚本---查找并删除重复的文件
- python删除本地夹里重复文件的方法
- php删除文本文件中重复行的方法
- 使用shell删除目录下几天前生成文件方法
- 【Shell】脚本中删除和替换文件中某一行的方法
- Linux下删除大数据文件中部分字段重复行的方法
- Shell小技巧:删除文件中重复的行
- shell 删除重复文件
- Shell中删除某些文件外所有文件的3个方法