我在查找文件夹中将包含字符串abc-def
的文件。grep搜索中间有连字符的字符串
我正在使用grep -l -r abc-def *
,但我不确定这是否正确的方法(使用此命令时没有找到文件,但也许它只是表示没有文件包含该字符串)。我也试过grep -l -r 'abc-def' *
(找到的文件,但是当我手动查找字符串时,他们不在那里,只有字符串的各个部分,即abc和def)。由于模式不以连字符开头,所以在这里不起作用。
grep搜索中间有连字符的字符串的正确方法是什么?
我在查找文件夹中将包含字符串abc-def
的文件。grep搜索中间有连字符的字符串
我正在使用grep -l -r abc-def *
,但我不确定这是否正确的方法(使用此命令时没有找到文件,但也许它只是表示没有文件包含该字符串)。我也试过grep -l -r 'abc-def' *
(找到的文件,但是当我手动查找字符串时,他们不在那里,只有字符串的各个部分,即abc和def)。由于模式不以连字符开头,所以在这里不起作用。
grep搜索中间有连字符的字符串的正确方法是什么?
尝试grep -r abc-def
先看看哪条线路相匹配。 grep -r abc-def *
和grep -r 'abc-def' *
应该真的产生相同的结果。
fgrep
(f是'固定字符串')在这里没有必要。
只是为了使这个答案更完整,请参考上面的尼尔的评论:连字符不是一个特殊的字符,所以它应该没关系,如果它在字符串的中间 – quarkdown27 2011-04-15 20:05:30
这应该工作:
fgrep -r -l 'abc-def' .
由于连字符不是shell或grep的特殊字符(除了字符类内部),它只是表示没有文件包含字符串。 – Neil 2011-04-15 19:49:35
@尼尔:好吧,非常感谢(我只是需要确保):) – quarkdown27 2011-04-15 20:00:28