替换文件Unix中的字符串

时间:2012-12-01 21:01:13

标签: linux string unix replace sed

我在Unix上有一个文本文件file1.txt。我想制作另一个文件file2.txt,其中我用apple-pie替换所有出现的apple_pie。我可以使用什么命令?

2 个答案:

答案 0 :(得分:18)

使用sedfile1.txt上进行全局替换,并将输出重定向到file2.txt

sed 's/apple-pie/apple_pie/g' file1.txt > file2.txt

答案 1 :(得分:1)

sed的效果优于awk,但两者都适用于此搜索和替换。 Reference

如果您将命令放在脚本中(例如,ksh,sh),那么这里的语法是:

awk '{gsub(/apple-pie/,"apple_pie");print}' "file1.txt" > "file2.txt"
sed -e 's/apple-pie/apple_pie/g' "file1.txt" > "file2.txt"