sed 匹配第一次出现的字符串,追加文件内容

sed match first occurrence of string, append file content

在使用 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.

awk 'FNR==NR{a=a"\n"[=10=];next} /^\[global\]/&& !f{=""a;f=1};1' idmapfile testingfile