Поиск и замена текста в нескольких файлах


alexu аватар

alexu - Posted on 15 Декабрь 2006

Чтобы заменить foo на bar в нескольких файлах, выполните следующую команду:

perl -pi~ -e 's/foo/bar/' [files]

Оригинальные файлы при этом будут сохраны с именами filename~

0
Ваша оценка: Ничего

линка в тему
http://wooledge.org:8000/BashFAQ#head-fce0b488008648d5f40764d90494d6eac0ab6598
--
Signature invent in progress 24% ##........

а зачем сложности:

sed -i 's/foo/bar/' [files]

если как на примере на перле то
sed -i~ 's/foo/bar/' [files]
но для полного счастья, что бы заменяла не только одно вхождение в одной строке то

sed -i~ 's/foo/bar/g' [files]

ps
и вообще некоторые grep-пом заменять умеют вроде Ж:-)

--
Signature invent in progress 22% #.........

с sed ом я так до конца и не подружился пока еще.. перл как-то роднее ;)
благодарю за insights :)

но /g в конце все же поставь, а то будет неприятный сюрприз со строкой типа
foo foo foo
--
Signature invent in progress 22% #.........

да я уже все, спасибо ;) команду использовал в следующем плане:
perl -pi~ -e "s/ \'\'/ \`\`/" ~/thesis/*.tex
кавычки не те поставил во всем тексте... вот и пришлось заменять, корректируя одно из замечаний ;)

Извините за нубквесчены такие, но хочется спросить как вставить переход на следующую строку?
Спасибо.

\n - переход на следующую строчку
если в файле DOS переводы строк то \r\n

Отправить комментарий

Google Friend Connect (leave a quick comment)
loading...
Содержание этого поля является приватным и не предназначено к показу.