我打电话跟我要查找的文字方案,所以programname '-r'
bash脚本:使用grep找到一个字符串,它也是一种选择
然后,在脚本中我有text="${1}"
find . -r -name "hi.*" -exec grep -l "${text}" {} \;
下半部分简化到grep -l -r
,它等待另一个输入
如何指定-r
是要找到的字符串,而不是一个选项?
我打电话跟我要查找的文字方案,所以programname '-r'
bash脚本:使用grep找到一个字符串,它也是一种选择
然后,在脚本中我有text="${1}"
find . -r -name "hi.*" -exec grep -l "${text}" {} \;
下半部分简化到grep -l -r
,它等待另一个输入
如何指定-r
是要找到的字符串,而不是一个选项?
的POSIX标准授权grep
支持,迫使下面的参数被视为一个选项-e
一个正则表达式,而不是另一个选项。
find . -r -name "hi.*" -exec grep -l -e "$text" {} \;
加--
后-l
[或您的上一个有效选项]。在grep
停止选项处理,使您的文本将被解释为一个要搜索的字符串,而不是一个选项:
find . -r -name "hi.*" -exec grep -l -- "${text}" {} \;
GNU'grep'使用'--'来表示选项的结束;不是所有版本的'grep'都会。 – chepner
@chepner根据问题标签:linux,bash,grep,我们可以假定GNU grep为可能的答案。在类似的情况下,我用“ - ”来表示一些不同的命令。 –