Index: zgrep.in =================================================================== --- zgrep.in.orig +++ zgrep.in @@ -211,10 +211,18 @@ res=1 for i do + case "$i" in + *.bz2) + uncompress=bzip2 + ;; + *) + uncompress=gzip + ;; + esac # Fail if gzip or grep (or sed) fails. gzip_status=$( exec 5>&1 - ('gzip' -cdfq -- "$i" 5>&-; echo $? >&5) 3>&- | + ($uncompress -cdfq -- "$i" 5>&-; echo $? >&5) 3>&- | if test $files_with_matches -eq 1; then eval "$grep$args" >/dev/null && { printf '%s\n' "$i" || exit 2; } elif test $files_without_matches -eq 1; then