免费注册 查看新帖 |

Chinaunix

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

shell处理多行 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-07-01 11:45 |只看该作者 |倒序浏览
在code中有
MACRO_NAME("name")

如果这两个在同一行还可以
如果变成这样
MACRO_NAME(
                       "name"
                      )

就不好处理,

我现在的想法是要把MARCO_NAME 和name用shell脚本抽取出来
做成MACRO_NAME   name的格式

请高手指点~~~~

论坛徽章:
0
2 [报告]
发表于 2011-07-01 11:56 |只看该作者
回复 1# alexandnpu


    一共包括几行,还有什么其它内容,

论坛徽章:
0
3 [报告]
发表于 2011-07-01 11:57 |只看该作者
回复 1# alexandnpu


    awk '/MACRO_NAME\(/{if($0!~/\)/){T=2;print;while(T){getline;print;T--}}else{print} }' file

论坛徽章:
0
4 [报告]
发表于 2011-07-01 12:51 |只看该作者
回复 1# alexandnpu


    不知道你的具体内容是怎么样,我弄了一个,不知道行不行:
  1. [root@station3 ~]# cat a.txt
  2. MACRO_NAME("name")
  3. www.chinaunix.com
  4. PR_NAME("name")
  5. MACRO_NAME(
  6.             "name"
  7.           )
  8. PT_NAME(
  9.                 "name"
  10. )
  11. MACRO_NAME(
  12.                  "name"
  13. )
  14. [root@station3 ~]# sed -e '/^MACRO_NAME($/{N;N}' -e 's/.*\(MACRO_NAME\).*\(name\).*/\1 \2/' a.txt
  15. MACRO_NAME name
  16. www.chinaunix.com
  17. PR_NAME("name")
  18. MACRO_NAME name
  19. PT_NAME(
  20.                 "name"
  21. )
  22. MACRO_NAME name
复制代码

论坛徽章:
0
5 [报告]
发表于 2011-07-01 13:02 |只看该作者
回复 2# wtuter


    宏里面当然还有一些用逗号分隔的参数,不过对我暂时来说是不需要的
    但是由于程序员编写代码的随意性,各种格式都会有的,即使这个用双引号引起来的名字也有可能在多行~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP