Answers:
我会像这样使用sed:
sed -i "s/www\.abcdef/www.test.abcdef/g;s/www\.kmlnop/www.test.klmnop/g;" yourfile.txt
-i
选项代表“就地”替换。您可以告诉sed创建文件的备份,并为此选项提供扩展名(-i.bak
将yourfile.txt备份为yourfile.txt.bak)。
sed
。我尝试了,并且有效。Unix&Linux Stackexchange中有一个很好的线程,并且公认的答案没有提到点作为要转义的字符。
如果还有更多搜索模式,则可以将它们保存在文件中,然后从中读取替代内容。例如,说这些是以下内容replacements.txt
:
www\.abcdef www.test.abcdef
www\.klmnop www.test.klmnop
然后,您可以阅读N个替换项列表,并将其替换为:
while read from to; do
sed -i "s/$from/$to/" infile.txt ;
done < replacements.txt
笔记:
replacements.txt
。sed
每次更换将运行一次,如果您执行许多更换操作,则可能需要一段时间。另一种选择是将以上内容编写为sed
脚本:
s/www\.abcdef/www\.test\.abcdef/g;
s/www\.kmlnop/www\.test\.klmnop/g;
s/aaaa/bbbb/g;
s/cccc/dddd/g;
s/eeee/ffff/g;
然后,您可以在文件上运行脚本,它将一次性完成所有替换操作:
sed -f replace.sed infile.txt