免费注册 查看新帖 |

Chinaunix

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

sed a 命令如何把a 后面的字符串当成sed命令. [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-04-14 11:15 |只看该作者 |倒序浏览
  1. olive:~/tmp> cat aaa.txt
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. olive:~/tmp> sed '/1/a xxx; /2/d; /3/a yyy; a hello' aaa.txt
  9. 1
  10. xxx; /2/d; /3/a yyy; a hello
  11. 2
  12. 3
  13. 4
  14. 5
  15. 6
  16. olive:~/tmp>
复制代码
显然,xxx; /2/d; /3/a yyy; a hello 都被当成a后面的字符串了。

但是我的意思是 a 后面的字符串是 xxx
接着/2/d;
/3/a yyy
a hello
都是sed的命令。

这个咋搞?

论坛徽章:
0
2 [报告]
发表于 2010-04-14 11:22 |只看该作者
sed -e '/1/a xxx' -e '/2/d' -e '/3/a yyy'

论坛徽章:
0
3 [报告]
发表于 2010-04-14 11:23 |只看该作者
回复 1# 渣渣鸟


    用  -e 试试

论坛徽章:
0
4 [报告]
发表于 2010-04-14 12:50 |只看该作者
在多行写写试试

论坛徽章:
0
5 [报告]
发表于 2010-04-14 15:22 |只看该作者
显然,xxx; /2/d; /3/a yyy; a hello 都被当成a后面的字符串了。

但是我的意思是 a 后面的字符串是 xxx
...
渣渣鸟 发表于 2010-04-14 11:15


man sed 有如下说明:
    (1) a\
       Text
            Places the Text variable in output before reading the next input line.

论坛徽章:
0
6 [报告]
发表于 2010-04-14 16:30 |只看该作者
根据楼上提示,两种做法。
  1. olive:~/tmp> cat aaa.txt
  2. 1                        
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. olive:~/tmp> sed -e '/1/a\
  9. > xxx
  10. > /2/d
  11. > /3/a\
  12. > yyy
  13. > a hello' aaa.txt
  14. 1
  15. xxx
  16. hello
  17. 3
  18. yyy
  19. hello
  20. 4
  21. hello
  22. 5
  23. hello
  24. 6
  25. hello
  26. olive:~/tmp> sed -e '/1/a xxx' -e '/2/d' -e '/3/a yyy' -e 'a hello' aaa.txt
  27. 1
  28. xxx
  29. hello
  30. 3
  31. yyy
  32. hello
  33. 4
  34. hello
  35. 5
  36. hello
  37. 6
  38. hello
  39. olive:~/tmp>
复制代码

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
7 [报告]
发表于 2010-04-14 19:00 |只看该作者
因为语法不对,看手册就清楚了。

论坛徽章:
0
8 [报告]
发表于 2010-04-14 19:47 |只看该作者
a和\之间还有个空格
  1. [root@kenthy ~]# sed '/1/a \
  2. > xxxx
  3. > /2/a \
  4. > yyy' txt
  5. 1
  6. xxxx
  7. 2
  8. yyy
  9. 3
  10. 4
  11. 5
  12. 6
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP