2016-04-29 4 views
0

Имея некоторые проблемы с СЭД вывода, что я хочу:СЕПГ матч первого появления строки, добавьте содержимое файла

У меня есть содержимое файла (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 Баша.

ответ

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