免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 943 | 回复: 0
打印 上一主题 下一主题

sed学习笔记5 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-08-16 10:54 |只看该作者 |倒序浏览
今天说的东西不像替换那么常用。
   
   1 删除命令d,它采用地址,如果行匹配这个地址就删除模式空间的内容。个人以为真正要掌握的知识不在这个命令上!而在于正则表达式,以及sed和awk的融合贯通,到那时删除才会有出神入化的效果!
删除文件中开头的10行
#sed '1,10d'
删除文件中的最后一行
#sed '$d'
删除文件中的最后两行 (这用到了sed的更高级命令,以后再说!)
#sed 'N;$!P;$!D;$d'
删除指定内容的重复行
(参考来源:
http://www.linuxpk.com/415.html

$cat test
werwrtert
ERROR*
ERROR*
ddffadfasf
sdfsfsfsfs
ERROR*
ERROR*
ERROR*
end
ERROR*
dddd
ERROR*
期望:
$./cx test
werwrtert
ERROR*
ddffadfasf
sdfsfsfsfs
ERROR*
end
ERROR*
dddd
ERROR*
脚本cx如下:
$cat cx
#!/usr/bin/awk -f
{ if ($0 == "ERROR*" && error_line == "ERROR*")
next; error_line=$0; print }
---------------------------
cat test | uniq

但是你没有指定重复的内容,这样,别的重复行也被删除了
如果test中有
abc
abc
如果我不希望删除abc呢?呵呵
补充一下uniq的用法
1. 无选项参数: 将源文件中的连续多相同行简化为一行,然后输出全文
2. -d : 将源文件中的连续多相同行简化为一行,然后输出这些行
2. -u : 排除源文件中的连续多相同行,然后输出其他行
  但如果重复的内容很多怎么删除这些重复的内容呢,这个要复杂很多了,以后再说!


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/43931/showart_361109.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP