加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

sed或awk多行替换

发布时间:2020-12-14 02:01:47 所属栏目:Linux 来源:网络整理
导读:我试图将格式添加到所有/ * TODO:… * /标签,但我在多行区域遇到问题.我可以做单线sed;但对于多线sed和awk,我不知道. 我该怎么做呢?我愿意接受. 这是我到目前为止所拥有的. sed 's///*[ t]*TODO[ t]*:.*/*//span style="color:#aaaaaa;font-weight:b
我试图将格式添加到所有/ * TODO:… * /标签,但我在多行区域遇到问题.我可以做单线sed;但对于多线sed和awk,我不知道.

我该怎么做呢?我愿意接受.
这是我到目前为止所拥有的.

sed 's///*[ t]*TODO[ t]*:.*/*//<span style="color:#aaaaaa;font-weight:bold;">&</span>/g'

替换:

int void main ( int h,char * argv[] )
  int a,b; /* TODO :
               - include libraries
               ...
            */
  foobar();
  /* TODO : fix missing {'s */

用:

int void main ( int h,b; <span style="color:#aaaaaa; font-weight:bold;">/* TODO :
               - include libraries
               ...
            */</span>
  foobar();
  <span style="color:#aaaaaa; font-weight:bold;">/* TODO : fix missing {'s */ </span>

解决方法

gawk 'BEGIN{
  RS="*/"
  replace="<span style="color:#aaaaaa; font-weight:bold;">"
}
//* +TODO/{
    gsub(//* +TODO/,replace" /* TODO")
    RT=RT "</span>"
}
{ print $0RT}
' file

产量

$./shell.sh
int void main ( int h,b; <span style="color:#aaaaaa; font-weight:bold;"> /* TODO :
               - include libraries
               ...
            */</span>

  foobar();
  <span style="color:#aaaaaa; font-weight:bold;"> /* TODO : fix missing {'s */</span>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读