fgrep -ircl --include=*.{sql} "[--]" *
似乎没有做到这一点。 请帮忙…
谢谢你们的回应。 我试图用'#'取代' – ',并且有一段艰难的时间。 我在这里创build了一个新的问题 。 如果你能帮上忙,那真是太棒了。
如果你想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} '[--]' *