linux下重复行的删除

原创 2013年12月04日 02:56:45

1:仅删除内容完全一样重复行 

      则可以使用sort先进行排序 然后使用 uniq进行删除重复数据即可。必须先使用sort排序。

例如文件 file.txt 

sh-3.2# more file.txt
BIT20050106146 6
BIT20050106147 0
BIT20050106147 5
BIT20050106148 3
BIT20050106148 4
BIT20050106149 2
BIT20050106150 1
BIT20050106150 1
BIT20050106150 1
BIT20050106150 1
BIT20050106151 0
sh-3.2# sort file.txt | uniq > target.txt
sh-3.2# more target.txt
BIT20050106146 6
BIT20050106147 0
BIT20050106147 5
BIT20050106148 3
BIT20050106148 4
BIT20050106149 2
BIT20050106150 1
BIT20050106151 0
则删除成功。

2:删除列内容重复的行

例如下例。删除file.txt文件中第一列重复的行

sh-3.2# more file.txt
BIT20050106146 6
BIT20050106147 0
BIT20050106147 5
BIT20050106148 3
BIT20050106148 4
BIT20050106149 2
BIT20050106150 1
BIT20050106150 1
BIT20050106150 1
BIT20050106150 1
BIT20050106151 0
sh-3.2# awk 'a!=$1{a=$1; print}' file.txt
BIT20050106146 6
BIT20050106147 0
BIT20050106148 3
BIT20050106149 2
BIT20050106150 1
BIT20050106151 0

使用 
awk 'a!=$1{a=$1; print}' file.txt


awk 'a!=$1{a=$1; print}' file.txt < target.txt
mv target.txt file.txt 
则file.txt变为上述的结果。

3: 删除第一个字段重复且第二个字段为0的行。

sh-3.2# more file.txt
BIT20050106146 6
BIT20050106147 0
BIT20050106147 5
BIT20050106148 3
BIT20050106148 4
BIT20050106149 2
BIT20050106150 1
BIT20050106151 0
sh-3.2# awk 'a!=$1{a=$1; print}' file.txt > target.txt
sh-3.2# mv target.txt file.txt
sh-3.2# more file.txt
BIT20050106146 6
BIT20050106147 0
BIT20050106148 3
BIT20050106149 2
BIT20050106150 1
BIT20050106151 0
sh-3.2# awk '$2!=0{print}' file.txt > target.txt
sh-3.2# mv target.txt file.txt
sh-3.2# more file.txt
BIT20050106146 6
BIT20050106148 3
BIT20050106149 2
BIT20050106150 1

可分为两步来完成:
awk 'a!=$1{a=$1; print}' file.txt > target.txt
mv target.txt file.txt

之后:

awk '$2!=0{print}' file.txt > target.txt
mv target.txt file.txt
即可。



sed awk 去除重复行

http://butterflymacro.iteye.com/blog/guest_book sed与awk去除 UnixF#  1 如果仅仅是删除内容完全一样重复行  则可以使用sort先进...
  • killmice
  • killmice
  • 2016年10月27日 18:29
  • 2005

Linux删除重复行 排序和不排序的做法

Linux删除重复行
  • zheng0518
  • zheng0518
  • 2016年06月23日 16:36
  • 2455

如何快速删除Linux文件中的重复数据行

Linux系统操作中,如果文件中的数据过多,想要删除重复数据行是非常麻烦的,查找不方便,那么有什么方法能够快速删除文件重复数据行呢?下面小编就给大家介绍下如何删除文件重复数据行,一起来看看吧。http...
  • mmbbz
  • mmbbz
  • 2017年02月08日 16:04
  • 1214

SQL查找删除重复行

本文讲述如何查找数据库里重复的行。这是初学者十分普遍遇到的问题。方法也很简单。这个问题还可以有其他演变,例如,如何查找“两字段重复的行”(#mysql IRC 频道问到的问题) 如何查找重复行 ...
  • afeiqiang
  • afeiqiang
  • 2013年02月18日 00:50
  • 11694

notepad++ 去除 重复行

notepad++  真是强大,几乎你能想到的处理文本方法都可以用它来实现,因为他有强大的插件团! 例如1:去除重复行 先安装TextFx插件 在菜单TextFX-->TextFX Tools下...
  • ccc7560673
  • ccc7560673
  • 2013年11月22日 11:30
  • 42936

文本 去除重复行(sublime Text3 ,正则表达式)

文本 去除重复行(sublime Text3 ,正则表达式)去除重复行的方法很多,这里通过正则表达式实现;农林牧渔子类 农林牧渔子类 农林牧渔子类 农林牧渔子类 卫生和社会工作子类 卫生和社会工作子类...
  • u013938484
  • u013938484
  • 2016年03月22日 13:50
  • 12371

matlab矩阵中如何去掉重复的行?

近来用matlab编程遇到了这样两个问题,如有以下矩阵: IDX = [1,2,3;        2,3,1;        1,2,3;        2,3,1;        1,1...
  • loveaborn
  • loveaborn
  • 2013年01月09日 16:00
  • 28822

postgresql数据库三种删除重复数据的方法

PG数据库几种删除重复数据的方法在使用PG数据库的这段时间,总结了三种删除重复数据的方法,其中最容易想到的就是最常规的删除方法,但此方法性能较差,删数据耗时较久,虽容易实现,但性能太差,影响写数据的速...
  • arcticJian
  • arcticJian
  • 2015年11月25日 21:18
  • 2108

jxl 删除excel重复的行

思路:先检索excel文件,找出
  • zhaizu
  • zhaizu
  • 2014年05月30日 11:19
  • 2277

用 uniq 除去重复行(Shell技巧1)

用uniq除去重复行(转载IBM developerWorks 中国) 重复行通常不会造成问题,但是有时候它们的确会引起问题。此时,不必花上一个下午的时间来为它们编制过滤器,uniq 命令便是唾手...
  • snihcel
  • snihcel
  • 2014年10月11日 00:50
  • 1074
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux下重复行的删除
举报原因:
原因补充:

(最多只允许输入30个字)