使用grep / sed / awk查找并替换URL?

时间:2011-09-26 13:21:08

标签: grep replace

通常情况下,我需要用大型WordPress数据库中的实时替换本地URL。我可以在TextMate中完成,但通常需要10多分钟才能完成。

基本上,我有一个10MB + .sql文件,我想:

查找:http://localhost:8888/mywebsite

替换为:http://mywebsite.com

之后,我将保存文件并对本地/活动服务器进行mysql导入。我这样做至少每周3-4次,等待Textmate一直很痛苦。使用grep / sed / awk有更简单/更快的方法吗?

谢谢!

特里

3 个答案:

答案 0 :(得分:9)

sed 's/http:\/\/localhost:8888\/mywebsite/http:\/\/mywebsite.com/g' FileToReadFrom > FileToWriteTo

这是全局(/ g)运行switch(s /)并用第二个URL替换第一个URL。使用反斜杠转义正斜杠。

答案 1 :(得分:3)

kent$  echo "foobar||http://localhost:8888/mywebsite||fooooobaaaaaaar"|sed 's#http://localhost:8888/mywebsite#http://mywebsite.com#g'
foobar||http://mywebsite.com||fooooobaaaaaaar

如果您想进行替换(更改原始文件)

sed -i 's#http://.....#http://mysite#g' input.sql

答案 2 :(得分:1)

您无需替换http://

sed "s/localhost:8888/www.my-awesome-page.com/g" input.sql > output.sql