Linux 在一行中搜索一个字符串但替换该行中的另一个字符串

Linux search for a string in a line but replace another string in that line

如果test.txt文件是

GREEN Volks RUNNING
GREEN Audi STOPPED
GREEN Merc RUNNING

我可以 grep STOPPED 并将其替换为 sed,如下所示

grep "STOPPED" test.txt |sed 's/^GREEN/RED/g'

其中returns以下输出

RED Audi STOPPED

但我想尝试

 sed -i 's/^GREEN/RED/g'| grep "STOPPED" test.txt 
来查看如下输出:

GREEN Volks RUNNING
RED Audi STOPPED
GREEN Merc RUNNING

提前致谢。

看起来像你想要的:

  sed '/STOPPED/s/^GREEN/RED/'