+ -
当前位置:首页 → 问答吧 → shell处理多行

shell处理多行

时间:2011-07-01

来源:互联网

在code中有
MACRO_NAME("name")

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

就不好处理,

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

请高手指点~~~~

作者: alexandnpu   发布时间: 2011-07-01

回复 alexandnpu


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

作者: wtuter   发布时间: 2011-07-01

回复 alexandnpu


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

作者: o绝对新手o   发布时间: 2011-07-01

回复 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
复制代码

作者: lionfun   发布时间: 2011-07-01

回复 wtuter


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

作者: alexandnpu   发布时间: 2011-07-01

热门下载

更多