我有数百个HTML和JavaScript文件,我想在它们的内容中为我搜索一些有用的数据。我试着使用Spotlight和Finder,但是这些工具并不能提供信息。聚光灯搜索范围太广,而Finder显示的信息太差。
我要具体说明的是:
问题是搜索结果只显示文件,而不是它们的内容。所以我被迫在一个文本编辑器中一个一个地打开文件,然后再进行搜索以找到这个关键字所在的位置。
请告诉我免费程序,这可以帮助我不仅看到文件本身,而且一些有用的内容。这是我想看的一幅画。
发布于 2023-03-13 19:20:52
在终端应用程序中使用find
、xargs
和grep
。例如:
find folder1 folder2 -type f \( -name '*.html' -o -name '*.js' \) -print0 | xargs -0 grep -P '(data-id="1"|data-id="2")'
创建简单的输入:
mkdir folder1 folder2
echo 'data-id="1"' > folder1/file1.html
echo 'data-id="1"' > folder1/file1.js
echo 'data-id="2"' > folder2/file2.html
echo 'data-id="2"' > folder2/file2.js
运行命令查找文件并搜索文件内容:
find folder1 folder2 -type f \( -name '*.html' -o -name '*.js' \) -print0 | xargs -0 grep -P '(data-id="1"|data-id="2")'
指纹:
folder1/file1.html:data-id="1"
folder1/file1.js:data-id="1"
folder2/file2.js:data-id="2"
folder2/file2.html:data-id="2"
上面的命令是预装在Mac上的,但是很多人更喜欢这些命令的GNU版本。要安装它们,首先安装brew
,然后运行这些来安装工具:
brew install coreutils
brew install findutils
brew install grep
将路径添加到您的PATH
中,使用这些工具,而不每次都键入完整的路径。
发布于 2023-04-13 14:12:44
我经常在一起使用命令行工具grep
和xargs
。
首先使用grep -R -l stuff mydir/*
获取包含内容的文件名列表。如果这会导致文件过多,请向下转到目录层次结构中。
然后在找到文件的位置查看文件片段:
grep -R -l stuff mydir/* | xargs -i grep -C 3 stuff {}
-C 3
选项将为您提供3行C
的文本之上和下面的每一个命中。
如果您安装了locate
和updatedb
,并且您对文件的类型有一个模糊的概念(例如,只在.html文件中),您也可以运行
locate -r .html$ | xargs -i grep -C 3 stuff {}
这将找到它已经索引的所有.html文件名(在硬盘上的任何地方)并显示找到的点击率。
https://softwarerecs.stackexchange.com/questions/86554
复制相似问题