使用shell中的变量查找和替换部分行

时间:2016-10-19 17:31:09

标签: shell sed

我有一个包含以下格式的几行文件:

#ABC-1X1X-XXX-8000-2AB-XXXX-3000                $(var1) $(var2) $(var3) $(var4)

在查找ABC-1X1X-XXX-8000-2AB-XXXX-3000后,我需要删除#并更新文件。运行一些其他命令并将其恢复为原始命令。

我在下面尝试了,但是这样就删除了#,但也删除了我的所有其他变量,该行的其余部分。我只希望从该行删除#

look_for=ABC-1X1X-XXX-8000-2AB-XXXX-3000
found=($(grep $look_for $file))
sed  -i "/$found/c \\$look_for" $file

输出:

ABC-1X1X-XXX-8000-2AB-XXXX-3000                    (missing all other variable)

1 个答案:

答案 0 :(得分:0)

我试过这个并且有效:

sed -i "s/$found/$look_for/g" "$file"