我试图用递归搜索一个字符串,grep
但是我得到了:
$ grep -r "stuff" *
grep: unrecognized option '---corporate-discount.csv'
Usage: grep [OPTION]... PATTERN [FILE]...
Try 'grep --help' for more information.
如何防止Bash传递以-
as开头的文件?
首先,请注意,以破折号开头的参数的解释取决于正在启动的程序grep
或其他程序。外壳没有直接的方法来控制它。
假设您要处理此类文件(而不是完全忽略它们),则grep
与大多数程序一起,可以将其识别--
为指示选项的结束,因此
grep -r -e "stuff" -- *
会做你想要的。如果-e
还有以stuff
开头的-
,也有。
或者,您也可以使用:
grep -r -e "stuff" ./*
如果-
当前目录中有一个文件,则后一种方法也可以避免该问题。即使在--
分隔符之后,它也grep
解释-
为标准输入,而在当前目录中则./-
是该文件-
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句