При использовании sed
вам не нужно grep
, потому что sed
может одновременно выполнять поиск по шаблону.
В данном случае это довольно простое выражение; найдите строку {fig /
, а затем добавьте png
Теперь поисковое выражение должно быть немного умнее, так как мы хотим остановиться на закрытии }
персонаж, но это вполне нормально. Также следует учитывать, что в каждой строке может быть больше одного.
Таким образом, мы получаем
sed 's!{\(fig/[^}]*\)}!{\1.png}!g'
Например:
$ cat x
untouched lines
text{fig/titel/Logo}text
more lines
text{fig/somethingelse/image}text
text{fig/stuff}text and {fig/morestuff}text
$ sed 's!{\(fig/[^}]*\)}!{\1.png}!g' x
untouched lines
text{fig/titel/Logo.png}text
more lines
text{fig/somethingelse/image.png}text
text{fig/stuff.png}text and {fig/morestuff.png}text
Мы видим, что к записям {fig / ...}
теперь добавлено png
, а также другие элементы. нетронутый.