Bash脚本:使用grep查找也是一个选项的字符串

时间:2016-01-23 22:28:10

标签: linux bash grep

我用我想要找的文字调用程序,所以programname '-r'

然后,在脚本中我有text="${1}"

find . -r -name "hi.*" -exec grep -l "${text}" {} \;

后半部分简化为grep -l -r并等待另一个输入

如何指定-r是要找到的字符串,而不是选项?

2 个答案:

答案 0 :(得分:0)

-- [或您的上一个有效选项]之后添加-l。这会停止grep中的选项处理,以便您的文本将被解释为要搜索的字符串而不是选项:

find . -r -name "hi.*" -exec grep -l -- "${text}" {} \;

答案 1 :(得分:0)

POSIX标准要求grep支持一个选项-e,强制将以下参数视为正则表达式,而不是另一个选项。

find . -r -name "hi.*" -exec grep -l -e "$text" {} \;