需求
文件数量过多,要查找关键字的文件,首先想到的 find 查找文件并 使用 grep 搜索内容
解决1
find /path/to/search -type f -name "pattern" -exec grep -Hn "search_string" {} \;
说明
- /path/to/search 是您要开始搜索的目录。
- -type f 表示只查找文件。
- -name "pattern" 指定文件名模式,例如 "*.txt" 查找所有.txt文件。
-
-exec grep -Hn "search_string" {}
\
; 执行grep命令,其中:- -H 选项确保即使只搜索一个文件,也显示文件名。
- -n 会在匹配的每一行前加上行号。
- {} 会被替换为find找到的每个文件名。
\
; 结束-exec操作。
注意: 不能省略最后的 \;
解决2
find /path/to/search -type f -name "pattern" -print0 | xargs -0 grep -Hn "search_string"
说明
- -print0 和 xargs -0 的组合用于处理包含特殊字符的文件名。
- 其余参数与上述-exec方法相同。