在sed输出我想要的东西时遇到一些麻烦:
我有我的文件内容(idmap):
idmap config ....
idmap config ....
正在写入文件(测试)
[global]
[global]
我使用了以下sed
命令: -
sed '/\[global\]/ r idmap' /tmp/testing
该命令按预期工作并匹配所有[global]
标记,并在所有[global]
出现后插入文本:
[global]
idmap config ....
idmap config ....
[global]
idmap config ....
idmap config ....
我尝试以下内容仅匹配第一次出现的[global]
sed '0,\[global\]/ r idmap' /tmp/testing
然后产生:
idmap config ....
idmap config ....
idmap config ....
idmap config ....
[global]
idmap config ....
idmap config ....
[global]
对此处发生的事情的任何解释都会非常感激,awk
也可能对我有用,以及如何获得所需的输出:
[global]
idmap config ....
[global]
idmap config ....
在Centos 7.1 bash上运行。
答案 0 :(得分:0)
awk 'FNR==NR{a=a"\n"$0;next} /^\[global\]/&& !f{$1=$1""a;f=1};1' idmapfile testingfile