2012-01-17 67 views
2

我想通过bash控制台搜索并替换位于几个文件中的字符串。在控制台中搜索并替换

下面是我用它来找到字符串的文件的命令:

grep "string" * -r

所以上面的是搜索,现在我需要一个命令替换string

这可能吗?

+1

当然,你有没有试过'sed'? – 2012-01-17 22:07:06

+1

请参阅http://stackoverflow.com/questions/4996460/how-do-i-replace-the-word-hello-with-goodbye-in-every-file-in-this-directory/4996483 – Antti 2012-01-17 22:09:44

回答

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),命令a预期\后面跟着文本。 – 2014-02-26 21:53:14

+0

你有一个错字,听起来像。在我的例子中没有命令“a”。 – Almo 2014-02-26 21:54:18

+0

你需要在Mac/FreeBSD上提供备份扩展,例如'sed -i .bk's/e/d/g'myfile.txt' – 2014-02-27 07:55:06