免费注册 查看新帖 |

Chinaunix

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

请教:如何用sed删除最后的几行 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-08-10 14:04 |只看该作者 |倒序浏览
例如:我有以下一个文件a1
         
606510062300097405       510107036
606510062300056184       510107036
606510062300053088       510107036
606510062300053932       510107036
606519013300302636       510183010
606584011300108134       510681011
606584011300081544       510681011
606621103300281954       510921001
606658005300069225       511129003
606739006300402621       511324013
         
10       10

它的文件开头和结尾都有有空行和我不需要的行
我使用
        

  1. sed -e '/^$/d' -e '/select/d' a1>a2
  2. sed '$d' a2>a3
  3. sed '$d' a3>a4
  4. sed '1d' a4>a5
复制代码

能够把文件编辑为a5的效果
606510062300097405       510107036
606510062300056184       510107036
606510062300053088       510107036
606510062300053932       510107036
606519013300302636       510183010
606584011300108134       510681011
606584011300081544       510681011
606621103300281954       510921001
606658005300069225       511129003
606739006300402621       511324013
但是,我希望把这个语句精简一点,请高手指点一下。谢谢。

论坛徽章:
0
2 [报告]
发表于 2005-08-10 14:34 |只看该作者

请教:如何用sed删除最后的几行

$ grep -v '^ *$' test
606510062300097405       510107036
606510062300056184       510107036
606510062300053088       510107036
606510062300053932       510107036
606519013300302636       510183010
606584011300108134       510681011
606584011300081544       510681011
606621103300281954       510921001
606658005300069225       511129003
606739006300402621       511324013
补充:^和*之间有个空格

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
3 [报告]
发表于 2005-08-10 15:24 |只看该作者

请教:如何用sed删除最后的几行

grep '^606'

论坛徽章:
0
4 [报告]
发表于 2005-08-10 15:47 |只看该作者

请教:如何用sed删除最后的几行


  1. >cat a1
  2.         
  3. 606510062300097405       510107036
  4. 606510062300056184       510107036
  5. 606510062300053088       510107036
  6. 606510062300053932       510107036
  7. 606519013300302636       510183010
  8. 606584011300108134       510681011
  9. 606584011300081544       510681011
  10. 606621103300281954       510921001
  11. 606658005300069225       511129003
  12. 606739006300402621       511324013
  13.         
  14. 10       10


  15. >grep -v '^ *$' a1
  16. 606510062300097405       510107036
  17. 606510062300056184       510107036
  18. 606510062300053088       510107036
  19. 606510062300053932       510107036
  20. 606519013300302636       510183010
  21. 606584011300108134       510681011
  22. 606584011300081544       510681011
  23. 606621103300281954       510921001
  24. 606658005300069225       511129003
  25. 606739006300402621       511324013
  26. 10       10
  27. >
复制代码

最后一行还是在啊
--------------------------------
grep '^606'
是可以的,但是假如我的文件开头的不完全是606,还有303等等怎么办

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
5 [报告]
发表于 2005-08-10 16:02 |只看该作者

请教:如何用sed删除最后的几行

grep '^606\|^303'  

论坛徽章:
0
6 [报告]
发表于 2005-08-10 19:05 |只看该作者

请教:如何用sed删除最后的几行

原帖由 "waker" 发表:
grep '^606\|^303'  


to waker:
老乡,能解释一下grep '^606\|^303'  吗

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
7 [报告]
发表于 2005-08-10 21:12 |只看该作者

请教:如何用sed删除最后的几行

看正则,以606或303开头的行

论坛徽章:
0
8 [报告]
发表于 2005-08-10 22:17 |只看该作者

请教:如何用sed删除最后的几行


  1. sed -i '/^$/d'  a1|sed -i '$d'
复制代码

论坛徽章:
0
9 [报告]
发表于 2005-08-15 09:59 |只看该作者

请教:如何用sed删除最后的几行

sed -i '/^$/d'  a1|sed -i '$d'
sed: ERROR: Illegal option -- i
sed不能-i  啊

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
10 [报告]
发表于 2005-08-15 10:09 |只看该作者

请教:如何用sed删除最后的几行

原帖由 "kakaxiong" 发表:
sed -i '/^$/d'  a1|sed -i '$d'
sed: ERROR: Illegal option -- i
sed不能-i  啊

sed版本问题   建议使用GNU的软件
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP