我需要创建一个bash脚本,它遍历目录中的一堆.txt文件,然后在每个.txt中搜索一个字符串,并返回字符串出现在
上的整行。我知道如何浏览目录中的所有.txt文件,
我只需指向正确的方向搜索文件本身,并根据该行中的匹配返回一行
答案 0 :(得分:9)
在一个目录中
grep "search string" *.txt
搜索或转到子目录
find /full/path/to/dir -name "*.txt" -exec grep "search string" {} ;\
答案 1 :(得分:0)
你可以使用循环:
for i in $(find|grep .txt); do grep "search" "$i";
如果您还想在每次匹配时打印文件名,请将-H
添加到grep
答案 2 :(得分:0)
一点点补充。添加-n
以返回该行。
grep -rn "foo" *.txt
有关详情,请参阅grep --help
。