我需要制作一个 bash 脚本,它循环遍历目录中的一堆 .txt 文件,然后在每个 .txt 中搜索字符串,并返回字符串出现的整行
我知道如何查看目录中的所有.txt文件,
我只需要指向正确的方向来搜索文件本身,并根据该行中的匹配返回一行
一个目录内
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
了解更多。
行号不是所要求的。要求的是在一行中搜索子字符串并返回整行。