2012-12-01 137 views
8

我在Unix上有一个文本文件file1.txt。我想生成另一个文件file2.txt,其中我将apple-pie的所有匹配项替换为apple_pie。我可以使用什么命令?替换文件中的字符串Unix

回答

17

使用sed做全局替换上file1.txt和输出重定向到file2.txt

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

sedawk更好的性能,但都将这个找工作和替换。 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"