美文网首页
sed高级篇: 流程控制-(b和t的使用)

sed高级篇: 流程控制-(b和t的使用)

作者: ape_caesar | 来源:发表于2019-01-10 18:33 被阅读0次

    功能

    再怎么高级的使用,都是为了满足需求,这里我们设置来说一个常见的需求

    如果我想往我的代码里添加一些代码(随意代码,垃圾代码)

    垃圾代码需要添加到方法体里, 如objective-c的:

    - (void) lickMyBalls:(NSString*)balls with:(id)tongue
    {
          // ....代码
    }
    

    首先我是得匹配到方法, 再在方法的{}括号里添加, 而不是见到{}括号就添加, for循环也有括号呢。

    这里有一个可以用sed的多行匹配, 也可以用b(branch control)流程控制来完成;

    因为这里讲b的使用, 所有我们就用b来实现这个功能

    代码

          #  匹配方法
        sed -i '/^- \(.*\)/{
                # 设下标签
                :tag1;
                # 将下一行加到pattern space上,以\n连接
                N;
                # 如果此时pattern space不是以{符号结尾,回到:tag1标签处继续流程,像是goto :tag1
                /{$/!b tag1;
                # 到这里说明已经有{符号了,在{的下面添加上injected_content
                a '"$injected_content"'
            }' ${file}
    

    injected_content就是添加的内容; file是被操作的文件;

    这就是一个简单的b的使用的例子

    相关文章

      网友评论

          本文标题:sed高级篇: 流程控制-(b和t的使用)

          本文链接:https://www.haomeiwen.com/subject/sctzrqtx.html