如何用一行语句寻找目录下所有包含关键词的文件索引信息
背景描述
经常出现如下情况,比如:目录下都是文本文件,搜索的词为 hello,需要找出所有满足条件的文件和行号信息。
命令范例:
for file in find ./ -name "*.txt"
; do grep -Hn hello $file; done
上述命令拆解为几个命令的组合:
1 find命令用于搜索所有的文件文件
2 for 语句用于遍历文件
3 grep用于获取索引信息
组合命令的结果:打印出所有包含关键词的文件和行号,以及对应的行文本。示例见下图:
利用上面的格式,可以根据需要,做出更多的组合动作,比如结合awk命令进行格式计算和输出。