如何FGREP 2破折号' – '?

fgrep -ircl --include=*.{sql} "[--]" *似乎没有做到这一点。 请帮忙…

谢谢你们的回应。 我试图用'#'取代' – ',并且有一段艰难的时间。 我在这里创build了一个新的问题 。 如果你能帮上忙,那真是太棒了。

Solutions Collecting From Web of "如何FGREP 2破折号' – '?"

如果你想fgrep以.sql结尾的所有文件,然后使用

 fgrep -ircl --include=*.sql -- -- * 

或者(注意{sql,}的逗号:

 fgrep -ircl --include=*.{sql,} -- -- * 

如果你想fgrep不止一种类型的扩展,然后使用类似的东西

 fgrep -ircl --include=*.{sql,txt} -- -- * 

正如其他人已经提到,第一个--告诉fgrep停止寻找旗帜和选项。 第二个--是固定的字符串模式。

这看起来像一个匹配(单)字符的正则表达式字符类。 字符串--通常用于表示“没有更多的参数跟随”,所以也许你应该尝试

 fgrep -ircl --include=*.{sql} -- -- * 

那就是“参数的结尾”,接着是你想要搜索的实际字符串。

短划线字符只能位于括号[]中的第一个位置,因为它们表示范围[az]或[0-9]。 你可以做[ – ] [ – ]。

您需要在方括号内跳过破折号字符,用于表示字符类(例如[az] )内的范围。 但是,在这种情况下,您不需要使用方括号来匹配文字字符串。

最后, --是导致参数解析停止的一个特殊序列。 要包含一个文字--作为一个参数,你必须明确地停止参数解析:

 fgrep -ircl --include=*.{sql} -- -- * 

尝试使用单引号'[--]'而不是"[--]"

 fgrep -ircl --include=*.{sql} '[--]' *