2012-01-17 3 views
2

Я хочу искать и заменять строку, расположенную в нескольких файлах через консоль bash.Поиск и замена в консоли

Вот команда, я использую, чтобы найти строку в файле:

grep "string" * -r

так выше для поиска, теперь мне нужна команда, чтобы заменить string.

Возможно ли это?

+1

Несомненно, вы пробовали 'sed'? –

+1

См. Http://stackoverflow.com/questions/4996460/how-do-i-replace-the-word-hello-with-goodbye-in-every-file-in-this-directory/4996483 – Antti

ответ

4

http://www.grymoire.com/Unix/Sed.html

Это капризный и трудно, но это один из способов сделать это.

Вот пример:

sed -i 's/ugly/beautiful/g' /home/bruno/old-friends/sue.txt 

Это заменяет некрасиво с красивыми в sue.txt.

+0

Не удается использовать OS X (FreeBSD) с 'command a expects \ follow to text'. –

+0

у вас опечатка, это звучит. В моем примере нет команды «a». – Almo

+0

Дело в том, что вам необходимо предоставить расширение для резервного копирования на Mac/FreeBSD, например. 'sed -i .bk 's/e/d/g' myfile.txt' –