Shell 修改文件内容

9,946 阅读1分钟

如果想要修改文件的内容,可以用如下的命令:

sed -i 's/被替换的内容/要替换成的内容/g' file

示例文件(test1.txt)内容

截屏2021-05-18 16.18.29.png 现在我们将示例文件内容中的 Hello World修改成 Hello Tom
sed -i 's/Hello World/Hello Tom/g' test1.txt

执行之后如下

截屏2021-05-18 16.27.34.png

在Mac上执行上面的命令会报如下错误:

sed: 1: "test1.txt": undefined label 'est1.txt'

原因:mac强制要求备份,否则报错

解决方案1:

增加一个备份的追加名
sed -i '.copy' 's/Hello Tom/Hello World/g' test1.txt

解决方案2:

只保留一份,不实用其他备份名字:
sed -i '' 's/Hello Tom/Hello World/g' test1.txt

还可以将修改好的文件另外保存到file2:

sed 's/被替换的内容/要替换成的内容/g' file1 > file2