#1 楼
grep -r 'text goes here' path_goes_here
评论
我建议一个人grep发现grep的所有精彩选择
–Ludovic Kuty
16年1月20日在12:31
这列出了路径中存在的每个文件并添加:没有此类文件或目录,我试图仅获取文本出现的列表。我们如何获得该清单?
– CP3O
17-6-17 at 12:38
知道了:grep -lr“文本模式” ./ -s; grep -lr“文本模式” [父母的路径] -s
– CP3O
17年6月1日在12:41
但这会返回匹配文件的内容,而不是文件详细信息(名称,路径)。 @ CP3O的建议有效。
–地理理论
18年11月21日在10:55
如何隐藏“权限被拒绝”结果?
–丹尼尔·斯普林格(Daniel Springer)
20年7月12日在20:51
#2 楼
使用聚光灯mdfind "text goes here"
mdfind -onlyin /home/user/Desktop -live "live update"
别忘了看:
man mdfind
评论
这对于聚光灯无法索引的文件(即隐藏文件夹中的文件,系统配置文件等)是否有效?
– Peter Berg
2013年9月10日下午4:10
Grep似乎没有解析.xlsx文件,但是效果很好。另一个简单的示例:mdfind -onlyin。 “搜索文字”
– FvD
2015年9月2日,11:44
#3 楼
通过Ack
brew install ack
ack "text goes here"
通过查找
find . |grep "text goes here"
通过grep
grep -RnslI "text goes here"
#4 楼
您可以根据自己的口味和需求选择以下一种。假设您需要在当前目录中递归搜索包含文本的文件-“异步”,则可以通过以下方式之一进行操作:使用grep
使用ack
#5 楼
Ignacio的答案很棒,并帮助我找到了包含某些文本的文件。我面临的唯一问题是,运行此命令时,所有文件都会被列出,包括其中一个未显示模式的文件。No such file or directory
这是我在不包含以下文件的文件旁边看到的内容如果改为将
-s
添加到命令中,如下所示:grep -lr "text pattern" ./ -s
;使用grep -lr "text pattern" [PATH DIRECTORY] -s
时,只会显示哪些文件包含该模式。类似地,如果
grep -nr "text pattern" ./ -s
;使用grep -nr "text pattern" [PATH OF DIRECTORY] -s
命令可以打印文件,行号以及模式的出现。如果我的理解是错误的,请更正我。
参考:我怎么能grep无法打印出“没有此类文件或目录”错误?
评论
避免这些讨厌的此类文件错误的另一种方法是将stderr传递给null。 grep ... 2> / dev / null。该解决方案适用于大多数程序,因为它们在stderr流而不是stdout上报告错误消息。我将这种解决方案与find一起使用了很多次,因为它将说很多文件的权限被拒绝。
– jpaugh
17年6月1日在18:02
(1)如果您没有收到有关现有文件的此类文件或目录消息,则可能是您做错了什么,或者系统已损坏。 (2)[父母的路径]与什么有关?
– G-Man说“恢复莫妮卡”
17年6月1日在19:01
@ G-Man我编辑了答案以显示[目录路径],以防万一某个陌生人想知道我为什么放./
– CP3O
17年6月2日在9:38
@ G-Man我使用的是Mac,而不是Ubuntu,不确定我的系统将如何损坏,我几乎没有做任何事情。
– CP3O
17年6月2日在9:39
评论
如果您想获得快速的结果,请使用Spotlight。另外,如果您要查找不一定直接在文件内存储文本的文件,例如PDF或ODF。很好的建议,但就我而言,由于文件位于网络驱动程序上,因此我不确定文件是否已编制索引。而且它们也是属于特定程序的xml文件。
看看unix.stackexchange.com/a/37932/213832这个解决方案效果很好