我有一个目录,其中包含许多具有不同扩展名的文件。我想要列出.html
仅包含标签的所有文件。
答案1
从终端,使用find
命令查找所有以 .html 结尾的文件,并使用命令grep
过滤结果以仅显示包含字符串的文件的名称<abbr>
:
cd /path-to-dir ## change directories to the root directory that you are searching from
find . -name "*.html" -exec grep -l '<abbr>' {} +
该find
命令默认以递归方式在目录层次结构中搜索文件。
或者将两个命令合并为一个命令:
find /path-to-dir -name "*.html" -exec grep -l '<abbr>' {} +
答案2
一个简单的解决方案:
grep -r "<abbr" --include="*.html" /path-to-dir
- 用于
-r
所有子目录。 - 仅用于
--include='*html'
匹配 html 文件。
答案3
为了进行验证(即file name
和lines with <abbr>
),您可以使用简单的方法:
grep '<abbr>' /path-to-dir/*.html
如果你想文件名仅使用以下内容:
grep '<abbr>' /path-to-dir/*.html | awk -F: '{ print $1 }' | sort | uniq