如何在Linux中测试bash文件中是否存在复杂字符串?

我正在检查特定文件中任何行上是否存在特定字符串,如下所示:

if grep -Fxq "-a always,exit -F arch=b32 -S chmod -F auid -k perm_mod" /etc/audit/audit.rules; then
    echo "text found."
fi

但是,我收到一条消息,提示grep正在传递无效的选项''(空格字符)。 我还尝试将字符串保存到变量,然后在变量上使用grep。它将错误修改为-S是无效选项。

我认为我的整个字符串不会以某种方式被解释为grep的输入,而部分字符串则被解释为选项。

a72137110 回答:如何在Linux中测试bash文件中是否存在复杂字符串?

--分隔搜索模式:

grep -Fxq -- "-a always,exit -F arch=b32 -S chmod -F auid -k perm_mod" \
/etc/audit/audit.rules && echo "text found."

出现此错误是因为您的搜索模式以-a开头,这被解释为grep的一个选项。

本文链接:https://www.f2er.com/3119681.html

大家都在问