find string inside a gzipped file in a folder

2020-02-08 03:56发布

My current problem is that I have around 10 folders, which contain gzipped files (around on an average 5 each). This makes it 50 files to open and look at.

Is there a simpler method to find out if a gzipped file inside a folder has a particular pattern or not?

zcat ABC/myzippedfile1.txt.gz | grep "pattern match"
zcat ABC/myzippedfile2.txt.gz | grep "pattern match"

Instead of writing a script, can I do the same in a single line, for all the folders and sub folders?

for f in `ls *.gz`; do echo $f; zcat $f | grep <pattern>; done;

7条回答
戒情不戒烟
2楼-- · 2020-02-08 04:45

how zgrep don't support -R

I think the solution of "Nietzche-jou" could be a better answer, but I would add the option -H to show the file name something like this

find . -name "*.gz" -exec zgrep -H 'PATTERN' \{\} \;
查看更多
登录 后发表回答