使用linux命令删除和替换一行

Shr*_*ram 1 linux bash sed

我正在尝试删除与模式匹配的行,并使用sed命令将整个行替换为另一行。文件内容:Sample.txt

Testfile=xxxx
Testfile3=uuuu
Testfile4=oooo
Testfile5=iiii
Testfile2=ikeii
Run Code Online (Sandbox Code Playgroud)

我正在使用sed命令删除包含Testfile3 = *的行,并替换为Testfile3 = linechanged

sed -i 's/Testfile3=\*/Testfile3=linechanged/' Sample.txt.
Run Code Online (Sandbox Code Playgroud)

但是它只是将可替换的字符串附加在行中,如下所示

Testfile3=linechanged=uuuu.
Run Code Online (Sandbox Code Playgroud)

我期望输出是

Testfile3=linechanged.
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

Pat*_*tin 5

不匹配正确的:

sed -i 's/Testfile3=.*/Testfile3=linechanged/' Sample.txt
#                   ^^
Run Code Online (Sandbox Code Playgroud)

.*匹配任意.长度(*)的任何字符(),因此它将匹配所有内容,直到行尾。