Поиск и замена текста в нескольких файлах
Чтобы заменить foo на bar в нескольких файлах, выполните следующую команду:
perl -pi~ -e 's/foo/bar/' [files]
Оригинальные файлы при этом будут сохраны с именами filename~
- 6534 просмотра
Страница для печати
ЛинСовет: Полезные Советы По Linux
Linux Tips Archive at linsovet.com
Чтобы заменить foo на bar в нескольких файлах, выполните следующую команду:
perl -pi~ -e 's/foo/bar/' [files]
Оригинальные файлы при этом будут сохраны с именами filename~
линка в тему
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
Отправить комментарий