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

标签 linux shell sed grep

如果test.txt文件是

GREEN Volks RUNNING
GREEN Audi STOPPED
GREEN Merc RUNNING

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

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

返回以下输出

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/'

关于Linux 在一行中搜索一个字符串,但替换该行中的另一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30408866/

相关文章:

linux - 在 NAS 操作系统中通过 SSH 使用 "Deep Sleep"/"Power Saving"模式?

linux - 使用 bash 脚本更新 CRON

linux - 如何开发 Gnome 工具栏图形小部件?

linux - 使用 WGET 运行 cronjob PHP 禁用通知电子邮件

linux - 如何在 Linux 中 Grep 不同行中的不同单词

linux - Bash 命令行参数通过 ssh 传递给 sed

linux - 如何替换 Linux 输出中的列数据 - 可能使用 awk sed 等

linux - bash 问题 : AWK

json - jq 不接受“.”line”作为有效语法 - "unexpected INVALID_CHARACTER"

scripting - C shell 脚本中是否有短路逻辑运算符?