在Unix系统中替换文件中的字符串

9
我在Unix上有一个文本文件file1.txt,我想生成另一个文件file2.txt,其中将所有出现的apple-pie替换为apple_pie。您可以使用什么命令?
您可以使用以下命令:
```sed 's/apple-pie/apple_pie/g' file1.txt > file2.txt```
2个回答

18

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

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

1

sed的性能比awk更好,但两者都可以用于此搜索和替换。参考资料

如果您将命令放在脚本中(例如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"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接