我正在尝试从单个目录中搜索多个压缩文件。我使用 zgrep 当前搜索单个文件或基于通配符搜索所有文件。以下是我目前正在尝试的操作:
文件:04112012.z、04122012.z、04132012.z 等等。
zgrep <search criteria> 0412* | less
有什么方法可以让我仅搜索 04112012.z 和 04122012.z 吗?
谢谢。
答案1
是的,您可以在命令行上指定特定的文件名,并在给出所有必需的命令开关之后、但在将结果传输到less
管道之前以空格分隔。
例如,您可以使用以下命令。-i
使用 switch 可以忽略大小写(返回大写和小写结果),并-E
调用 switch 以便可以使用扩展正则表达式:
zgrep -E -i 'gtk|layout' myfile1.gz myfile2.txt.gz myfile3.Z | less
如您所知,您可以使用*
而不是文件名来选择该文件夹中的所有文件,以便grep
搜索这些文件。此外,您还可以使用--include=regex
和--exclude=regex
开关来定位特定的文件名组,就像在此文章中解释。
如果您查看/bin/zgrep
(run cat /bin/zgrep
),它实际上只是一个包装脚本,并且所有常规grep
命令开关在调用时均有效。如zgrep 手册页,
Zgrep 在压缩或 gzip 文件上调用 grep。所有指定的选项都直接传递给 grep。如果未指定文件,则标准输入将在必要时解压缩并提供给 grep。否则,给定的文件将在必要时解压缩并提供给 grep。
有关详细信息,请参阅man zgrep
以及man grep
各自 Ubuntu 在线手册页。