Bash 使用sed编辑器时如何保持文件格式?

Bash 使用sed编辑器时如何保持文件格式?,bash,shell,Bash,Shell,假设一个文件包含: a=1234 b=5678 c=word 我正在编写一个bash脚本,它将更改a的值。我使用以下命令: echo `sed "s/\(a=\).*/\1 new/" file` >file 它给出: a=new b=5678 c=word 我还尝试了以下(使用锚)仍然获得相同的格式: echo `sed "s/\(a=\).*[\n]$/\1 new/" file` >file echo `sed "s/\(a=\).*'\n'$/\1 new/" file

假设一个文件包含:

a=1234
b=5678
c=word
我正在编写一个bash脚本,它将更改a的值。我使用以下命令:

echo `sed "s/\(a=\).*/\1 new/" file` >file
它给出:

a=new b=5678 c=word
我还尝试了以下(使用锚)仍然获得相同的格式:

echo `sed "s/\(a=\).*[\n]$/\1 new/" file` >file
echo `sed "s/\(a=\).*'\n'$/\1 new/" file` >file
我想去的地方:

a=new
b=5678
c=word

如何操作?

使用
-i
参数就地编辑文件:

sed -i 's/\(a=\).*/\1new/' file

你也可以来一次

sed  -i '/^a=/s/=.*/=new/g'   Input_file

删除
echo
和引号。不要用输出文件覆盖输入文件-使用
-i