我可以使用相同的命令grep压缩文件和未压缩文件

lac*_*991 10 logging debian grep

我正在尝试创建一个脚本来greting位于/ var/log /中的日志文件.我能够grep未压缩的日志或压缩的日志(作为日志轮换的结果)但是无法在一个命令中执行这两个操作(当我尝试这样做时,我得到"二进制文件(标准输入)匹配"),甚至可以做这样的事情吗?谢谢!

Sky*_*RaT 8

zgrep可以为你做,它处理压缩和未压缩的文件.一个缺点是它不能递归地处理目录.但对于您的实例,它是完全足够的,您可以按如下方式过滤例如syslog:

$ zgrep PATTERN /var/log/syslog*
Run Code Online (Sandbox Code Playgroud)


Gil*_*not 6

尝试使用函数执行此操作:

greplog () {
    cd /var/log
    {
        cat $1 $1.*[0-9]
        zcat $1.*.gz
    } | grep "$2"
}
Run Code Online (Sandbox Code Playgroud)

用法:

$ greplog syslog pattern
Run Code Online (Sandbox Code Playgroud)