未知命令:使用 SED 删除 shell 脚本中的一行时显示 `C 错误

未知命令:使用 SED 删除 shell 脚本中的一行时显示 `C 错误

我在 while 循环中运行以下命令。如果我的行符合我的场景,它将删除该行。我有 2 个示例,第一个有效,第二个失败。有人能指出我的错误吗?

例1:

line="!QCfg { Id: "ABC_XTQK", que: "QUE_166072_XTQK_ROS_CRIBE_PONSE_000", tryPro: false },"
sed -i "/$line/"'d' <FILENAME>

例子2:

line="ABC_XYZ: !PCfg { des: "AB/CDEF/GHI/XYZ/001", type: TOMATO, delMod: DIRECT },"
sed -i "/$line/"'d' <FILENAME>

答案1

我得到了答案,并尝试更改分隔符,因为“/”造成了问题。因此,我使用“|”作为分隔符,因此正确的命令应该是:

sed -i "\|$line|d" <FileName>

相关内容