切换到宽版
  • 1219阅读
  • 0回复

几种删除文本文件中空行或者重复行的方法 [复制链接]

上一主题 下一主题
离线daemonlicsrv
 
发帖
693
财富
353
威望
13
交易币
0
只看楼主 倒序阅读 使用道具 0楼 发表于: 2009-03-28 | 石油求职招聘就上: 阿果石油英才网
— 本帖被 坐看云起 从 软件应用 移动到本区(2011-09-20) —
在对解释或者处理工作站进行操作时,常常要进行不同系统的数据格式的转换或者对数据中的空行或者重复行进行删除.
列举一个例字:在加acsii格式的测井曲线或者二维地震测量成果时,如果测井曲线数据中深度有重复行而没有设置环境变量或者二维地震测量成果中有重复行时,数据就无法加载进去.因此需要删除重复行.
下面介绍几种删除文本文件中空行或者重复行的方法:
(1)删除空行
  a、用sed命令
sed  '/^$/'d  file1>file2
  sed '/^[  ]*$/'d file1>file2
  sed '/^[[:space:]]*$/' d file1>file2
  
b、用awk命令
  awk '{if($0!=" ")print}' file1>file2

c、在vi编辑器中删除
:g/^s*$/d

d、用grep命令删除
  cat file1|grep  -V  '^$' >file2

e、用tr命令删除
  cat file1|tr  -s ‘\n’>file2

(2)删除重复行
  a、删除连续重复行
$ uniq -c file         file中的重复行输出一次,并在每行前显示重复次数

$ uniq -d file         file中的重复行输出一次,但不输出唯一的行

$ uniq -u file          只输出file中的唯一行

$ uniq file1 file2     把file1中的重复的相邻行删除,并把每行的一个拷贝送到file2

b、删除非连续重复行
cat filename|sort|uniq -c > newfilename
如果重复行的内容想只留一行:
cat filename|sort |uniq > newfilename
cat filename|sort|uniq -d > tmp
1条评分
microdot 财富 +10 2009-03-28
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水

网站事务咨询:QQ:1392013 | 26189883
阿果石油网为免费个人网站,为石油人提供免费的在线即时技术交流场所,拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论和行为!
如有言论或会员共享的资料涉及到您的权益,请立即通知网站管理员,本站将在第一时间给予配合处理,谢谢!