我目前的问题是,我有大约10个文件夹,其中包含gzip文件(平均每个大约5个).这使得它有50个文件可以打开和查看.

有没有更简单的方法来确定文件夹中的gzip文件是否具有特定模式?

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

我可以在一行中为所有文件夹和子文件夹编写脚本,而不是编写脚本吗?

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

推荐答案

zgrep将查看gzip文件,有一个-R递归选项和一个-H显示文件名选项:

zgrep -R --include=*.gz -H "pattern match" .

操作系统特定的命令,因为并非所有参数都适用于所有系统:

Mac 10.5+: zgrep -R --include=\*.gz -H "pattern match" .

Ubuntu 16+: zgrep -i -H "pattern match" *.gz

Linux相关问答推荐

grep条件仅抓取某些文本

git别名函数可以用单引号写吗?

C++17:G++8.5版似乎无法正确生成无符号64位伪随机整数

如何注释掉SLURM中的延迟调度命令?

如何在脚本中使用sudo修改其他用户的crontab

如何使用 sed 和 date 命令替换和格式化字符串中的日期?

将所有列乘以一个常数

docker rm 命令在具有相同操作系统的不同机器上返回不同的状态码

根据其他列的值创建一个新列

给定两个目录树如何找到相同的文件?

使用 Bash 获取特定文件的 mtime?

argv的编码是什么?

如何将执行的shell命令的结果存储在python的变量中?

如何在 UNIX 上的 $PATH 中转义冒号 (:)?

将以前忽略的目录添加到 Git 存储库

Colored shell 脚本输出库

使用sudo apt-get install build-essentials

使用 Bash 脚本查找文件中字符串的行号

如何在 linux 或 unix 上找到用户的主目录?

`os.symlink` 与 `ln -s`