Используя sed (GNU sed) 4.2.2, я хочу:
- Match
Line1
- Проверьте
Line2
, чуть нижеLine1
, если он равенString
- Если это не - добавить
String
послеLine1
(или вставить перед темLine2
Что я пробовал:
echo -e "Line1\nLine2\nLine3" | sed '/Line1/n;/^String$/!iString'
но это возвращает:
Строка 1
строка
Line2
строка
Line3
Я также попробовал:
echo -e "Line1\nLine2\nLine3" | sed '/Line1/{n;/^String$/!iString}'
но возвращается
sed: -e выражение # 1, char 0: не найдено `{'
Я знаю, как сделать это по-другому, также используя sed, но я пытаюсь понять, как добиться этого точно так, как я описал выше. Также, пожалуйста, скажите мне, что не так с моим кодом.