在Linux中使用匹配模式找到匹配后添加新行

时间:2018-06-19 08:01:25

标签: linux awk sed grep

假设我有一个包含以下内容的文件:

[abc]
123
456

[def]
789
012

我想在每次在方括号内找到一个字符串时插入一个新行(这里是[abc],[def]),添加的新行是这样的:

foo=found_content,

其中found_content是方括号内的内容。因此,在运行命令后,文件的内容应如下所示:

[abc]
foo=abc
123
456

[def]
foo=def
789
012

我们如何实现这一目标?谢谢!

1 个答案:

答案 0 :(得分:-1)

这个单行应该帮你一把:

awk -F'[][]' '7;NF==3{print "foo="$2}' file

我的想法是,将[ or ]设置为FS[...]行,在其下方添加新行foo=field2