【发布时间】:2011-08-05 01:42:24
【问题描述】:
我需要制作一个 bash 脚本,它遍历目录中的一堆 .txt 文件,然后在每个 .txt 中搜索一个字符串,并返回该字符串出现的整行
我知道如何查看目录中的所有 .txt 文件,
我只需要指向正确的方向来搜索文件本身,并根据该行中的匹配返回一行
【问题讨论】:
标签: linux bash file shell search
我需要制作一个 bash 脚本,它遍历目录中的一堆 .txt 文件,然后在每个 .txt 中搜索一个字符串,并返回该字符串出现的整行
我知道如何查看目录中的所有 .txt 文件,
我只需要指向正确的方向来搜索文件本身,并根据该行中的匹配返回一行
【问题讨论】:
标签: linux bash file shell search
在一个目录内
grep "search string" *.txt
搜索或转到子目录
find /full/path/to/dir -name "*.txt" -exec grep "search string" {} ;\
【讨论】:
你可以使用循环:
for i in $(find|grep .txt); do grep "search" "$i";
如果您还想打印每个匹配的文件名,请将-H 添加到 grep
【讨论】:
一个小小的补充。添加-n 以返回该行。
grep -rn "foo" *.txt
更多信息请参见grep --help。
【讨论】: