Клавиатура не работает должным образом

Предполагая, что инструменты GNU (которые вы, кажется, используете):

grep -r --include='*.tex' -lZ '{fig/.*}' . |
  xargs -r0 sed -i.back 's:\({fig/[^}]*\)}:\1.png}:g'

grep , чтобы найти список файлов для обновления, sed , чтобы выполнить обновление только для эти файлы.

Или, если вы хотите добавить только .png , если его еще нет, GNU grep имеет параметр -P для регулярного выражения PCRE с его (? оператор отрицательного просмотра назад, но еще не GNU sed (хотя ssed в том же семействе есть), поэтому переключение на perl здесь:

grep -Pr --include='*.tex' -lZ '\{fig/[^}]*(?<!\.png)\}' . |
  xargs -r0 perl -pi.back -e 's:(\{fig/[^}]*(?<!\.png))\}:$1.png}:g'

С -i.back исходный файл сохраняется с расширением .back .

1
10.07.2015, 08:57
0 ответов

Теги

Похожие вопросы