我试图用递归搜索一个字符串,grep
但是我得到了:
$ grep -r "stuff" *
grep: unrecognized option '---corporate-discount.csv'
Usage: grep [OPTION]... PATTERN [FILE]...
Try 'grep --help' for more information.
如何防止Bash传递以-
as 开头的文件?
4
相关:如何删除名称以“-”开头的文件(连字符,即连字符或减号)?
—
钢铁司机
您真的不想阻止Shell传递这些文件,是吗?问题是,如何
—
DonHolgo '19
grep
确定它们不是选项。
...要清楚,bash不能控制将哪个结果视为选项还是作为参数;在接收程序的控制之下。例如,
—
查尔斯·达菲,
subprocess.Popen(['grep', '-r', '-e' 'stuff', '--corporate-discount.csv'])
在Python中,您将得到相同的行为,而在任何地方都没有bash。
—
通配符
@Wildcard,
—
查尔斯·达菲
--
用作选项终止标记也是完全合理的;POSIX实用程序语法准则要求遵守它。参见准则10。(当然,并非所有程序都遵循POSIX准则,但是答案是要对违规程序的作者进行严格分类和/或将其逐出行业)。