techsk8 Asked: 2021-11-26 00:49:34 +0800 CST2021-11-26 00:49:34 +0800 CST 2021-11-26 00:49:34 +0800 CST 如何使用 sed 备份然后修改文件? 772 我需要一次覆盖许多服务器上的一些配置,并且我想在创建备份时修改原始配置文件,这一切都可以用 sed 完成,只是为了好奇? 有人提到了这种模式,但它不起作用。 new_port="..." sed -i .bak "s/port=2334/${new_port}/g" linux bash 2 个回答 Voted Best Answer Stephen Kitt 2021-11-26T00:51:35+08:002021-11-26T00:51:35+08:00 sed -i .bak "s/port=2334/${new_port}/g" 几乎是您正在寻找的东西;解决方法是删除之后的空格-i: sed -i.bak "s/port=2334/${new_port}/g" 如果new_port只有端口号,您还必须重复port=: sed -i.bak "s/port=2334/port=${new_port}/g" sed所有这些只有在您在表达式之后实际指定要处理的文件的名称时才有效。 Praveen Kumar BS 2021-11-26T11:17:33+08:002021-11-26T11:17:33+08:00 用 awk 试过 awk '{print $0}' file >file.backup && awk '{gsub(/port=2334/,"port=${new_port}",$0);print }' file >tmpfile && mv tmpfile file
几乎是您正在寻找的东西;解决方法是删除之后的空格
-i
:如果
new_port
只有端口号,您还必须重复port=
:sed
所有这些只有在您在表达式之后实际指定要处理的文件的名称时才有效。用 awk 试过