Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 使用grep搜索find提供的文件:find有什么问题xargs grep'';?_Regex_Linux_Console_Find_Command - Fatal编程技术网

Regex 使用grep搜索find提供的文件:find有什么问题xargs grep'';?

Regex 使用grep搜索find提供的文件:find有什么问题xargs grep'';?,regex,linux,console,find,command,Regex,Linux,Console,Find,Command,当我使用命令时: find . | xargs grep '...' 我拿错了火柴。我正在尝试在当前文件夹中的所有文件中搜索字符串…。如果您按字面意思键入grep'…',则几乎可以匹配任何字符串。我怀疑您实际上是在为grep命令键入“…”,但如果是,则…将匹配任意三个字符 请发布有关您搜索内容的更多信息,也许有人可以为您提供更多帮助。如果您要查找匹配的文件名,请尝试: find . -name "filename pattern" 或 如果您正在查找匹配的文件(即它包含grep字符串) 很

当我使用命令时:

find . | xargs grep '...'

我拿错了火柴。我正在尝试在当前文件夹中的所有文件中搜索字符串

如果您按字面意思键入
grep'…'
,则几乎可以匹配任何字符串。我怀疑您实际上是在为grep命令键入
“…”
,但如果是,则
将匹配任意三个字符


请发布有关您搜索内容的更多信息,也许有人可以为您提供更多帮助。

如果您要查找匹配的文件名,请尝试:

find . -name "filename pattern" 

如果您正在查找匹配的文件(即它包含grep字符串)

很好。或者简单地说:

grep "string pattern" -R *

正如Andy White所说,您必须使用
fgrep
,以匹配普通
,或避开点

因此,您必须编写(
-type f
只包含文件:您显然不需要目录):

或者,如果您仍然想使用grep:

find . -type f | xargs grep '\.\.\.'
如果您只需要当前目录,而不需要其子目录:

find . -maxdepth 1 -type f | xargs fgrep '...'

“.”匹配任何字符,因此您将查找包含3个或更多字符的所有行

你可以避开这些点,如下所示:

find . | xargs grep '\.\.\.'
或者可以使用fgrep,它执行文字匹配而不是正则表达式匹配:

find . | xargs fgrep '...'

(某些版本的grep也接受-F标志,这使它们的行为类似于fgrep。)

要完成Jeremy的回答,您也可以尝试一下

find . -type f | xargs grep 'your_pattern'

这类似于xargs

我可以加上:RTFM!或者以更礼貌的方式:使用和滥用

man command

!

@OP,如果您正在查找包含

grep -R "\.\.\." *

然后,首先,你必须学会如何恰当地提问。从技术上讲,这没有什么问题。问题是你想做什么。描述得恰当清楚你的意思是,我得到的答案是什么?你确定grep-R不是你要找的吗?@ghostdog74我赞赏你的机智。我肯定只是在脑海中用“废话废话废话”取代了“…”。哦,是的,我正在寻找以字符串形式包含“…”的文件,但是:1。找到xargs grep“字符串模式”或2。grep“字符串模式”-R*没有帮助。更礼貌?阅读友好手册?这怎么会被认为是不礼貌的呢?有礼貌的怪人。:)手册页确实非常友好,并且期待着被再次阅读&再次阅读。(你让我开心,杰里米XD)时间越晚,我的评论似乎越令人讨厌。我想我现在达到顶峰了。从这里开始一切都是下坡路。我向你保证我不会因为你叫我怪胎而起诉你。你当然不会。“那么我就反诉你粗心大意、令人厌恶地使用了经济上的脏话。”@Hasturkun:是的。我只是倾向于选择不同的命令名而不是额外的选项(比如使用
gunzip
而不是
gzip-d
)。通常只是口味的问题。应该注意的是,
fgrep
egrep
已经被使用了。此外,彻底使用
grep
,无论如何都应该习惯于使用选项。然而,使用什么仍然是主观的,这是迄今为止最简单的解决方案。grep内置了递归文件搜索功能。
find . -type f | xargs grep 'your_pattern'
find . -type f -exec grep 'your_pattern' {} +
man command
grep -R "\.\.\." *