壳命令更改文件并保存



我想用 shell script 更改文件内容喜欢用新字符串替换文件3,然后保存到原始文件。谁能提供建议来实现这一目标?

使用来自shell脚本的vim做到这一点有点不寻常,但是由于您问:

vim -es '+3s/.*/a new string' '+wq' file

通常,您会选择另一个工具(sed -i是原地编辑(:

sed -i '3s/.*/a new string/' file

或Awk

gawk -i inplace 'NR==3{$0="a new string"}1' file

在类似于Unix的系统中,您可以使用sed替换特定行的内容。例如,下面的命令将在text.txt文件中替换为" helloworld"的第三行。

sed -i '3c HelloWorld' text.txt

如果您只想更改第三行内容的一部分,则可以使用:

sed -i '3s/aaa/bbb/' text.txt 

这只会将字符串" AAA"替换为第三行中的" bbb"。

edsedvim更合适,因为它旨在按计划编辑文件。(sed s ed的TREAM版本; -i是一个非标准扩展。(

printf '3s/.*/new stuff/nwn' | ed my_file.txt

最新更新