2011-10-05 3 views
2

Как я могу найти и заменить каждый экземпляр {% extends "a/b/c/d"%} другим {% extends "e/f/g/h"%} в каждом файле в каталоге? Кроме того, если что-то приходит после утверждения в той же строке, я бы хотел его сохранить.Поиск и замена строки в Linux?

Я просмотрел с помощью Perl, как следующее:

perl -pi -e 's/find/replace/g' *.html 

Но я не знаю, Perl и не знаю, что лучший способ идти о побеге всех символов в моем поиске/замены строки (т.е. {. /,»и т.д.).

Любое простое решение?

ответ

5

вы можете использовать некоторые символы, кроме / в s/find/replace/g синтаксиса языка Perl так что вам не придется бежать все слэши в a/b/c/d:

perl -pi -e 's|{% extends "a/b/c/d" %}|{% extends "e/f/g/h" %}|g' *.html 
2
sed -i -e 's/{% extends "\/a\/b\/c\/d"/{% extends "\/e\/f\/g\/h/g"' *.html 

или

sed -i -e 's|{% extends "a/b/c/d"|{% extends "e/f/g/h"|g' *.html 
Смежные вопросы