: ########################################################################## # Title : icat - "intelligent" cat # Author : Heiner Steven # Date : 1994-05-18 # Requires : gzip, zcat # Category : File Utilities # SCCS-Id. : @(#) icat 1.2 03/12/19 ########################################################################## # Description # ########################################################################## PN=`basename "$0"` # program name VER='1.2' Extensions=".Z .z .gz .cpz .tgz" # known file extensions usage () { echo >&2 "$PN - cat file, uncompress if necessary, $VER (stv '95) usage: $PN -l $PN [file ...] The first case lists all known extensions, the other case tries to print the given file, uncompressing it if necessary." exit 1 } msg () { for line do echo "$PN: $line" >&2 done } fatal () { msg "$@"; exit 1; } while [ $# -gt 0 ] do case "$1" in -l) # List known suffixes echo $Extensions exit 0;; --) shift; break;; # Simulate getopt -h) usage;; *) break;; esac done if [ $# -lt 1 ] then # read from stdin (uncompressed) cat else for i do if [ -r "$i" ] # file does exist then # Try to determine decompressor based on the extension case "$i" in *.Z) zcat "$i";; *.z) gzip -d -c "$i";; *.gz|*.tgz) gzip -d -c "$i";; *.cpz) zcat < "$i";; *) cat "$i";; esac else # try to determine compressed version if [ -r "$i".gz ] then gzip -d -c "$i" elif [ -r "$i".tgz ] then gzip -d -c "$i" elif [ -r "$i".Z ] then zcat "$i" elif [ -r "$i".z ] then gzip -d -c "$i" elif [ -r "$i".cpz ] then zcat < "$i" else fatal "could not find file: $i" fi Err=$? fi done fi exit ${Err:-0}