linux - 结合 grep sed 和 while

标签 linux bash shell sed

尝试修改 svg,以便如果文件中的字符串出现在该行中,我将颜色更改为红色。即:

while read -r LINE; do cat file.svg | grep ""$LINE" | sed 
's/rgb(0,0,0)/rgb(1,0,0)/s; done < file.txt

它不起作用,因为输入文件未更改 - 我需要类似 sed -i 的东西,但如何将它放入循环中?

最佳答案

改变:

cat file.svg | grep ""$LINE" | sed 's/rgb(0,0,0)/rgb(1,0,0)/"

为此:

sed -i.bak "\~$LINE~{s~rgb(0,0,0)~rgb(1,0,0)~g;}" file.svg

这是假设 $LINE 没有 ~ 字符或任何其他正则表达式元字符

关于linux - 结合 grep sed 和 while,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45594164/

相关文章:

python - 跟踪 bash 调用

linux - Jenkins 如何处理交互式 Shell 脚本?

regex - 使用 sed 删除两个空格字符之间的字符串

bash - 将 GLOBIGNORE 传递给 bash 调用

linux - 在linux中搜索分隔文件中的字符串,然后打印该字符串直到到达下一个分隔符

linux - 记录终端上的操作

linux - 基准模拟 "realistic"桌面/服务器工作负载

bash - 简单查找并用 sed 替换

shell - 在unix shell脚本中从字符串变量执行命令

windows - Mongo shell "this app can' t 在您的电脑上运行,要找到适合您电脑的版本,请与软件发行商联系。”