Working with compressed files

From LPTMS Wiki
Revision as of 15:07, 23 November 2011 by Roux (talk | contribs)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Linux usually provides a couple of command piping gzip

zgrep, zcat, zdiff, zless, zmore, zegrep,...

Here is a simple extension of tail and head for zipped files, that you can call ztail and zhead (example is for tail, replace "tail" with "head" everywhere to get zhead) and add to your own /bin directory: <source lang="bash">

  1. !/bin/bash

PATH=${GZIP_BINDIR-'/bin'}:$PATH

usage="Usage: $0 [OPTIONS]... [FILES]... Like 'tail', but operate on the uncompressed contents of any compressed FILEs.

Options are the same as for 'tail'."

case $1 in --help) exec echo "$usage";; -h) exec echo "$usage";; esac

options="" files="" for i in $@; do str="$i" if test -f $i && [ ${str:(-3)} = ".gz" ]; then

   files=$files"$i "

else

   if [ ${str:0:1} = "-" ] && [ $str != "-v" ] && [ $str != "--verbose" ]; then
       options=$options"$i "
   elif [ $str != "-v" ] && [ $str != "--verbose" ]; then
       echo -ne "***Warning: $i is neither a regular zip file or a regular option***\n\n"
   fi

fi done

for file in $files; do

   echo "==>"$file"<=="
   exec gzip -cd $file | tail $options

done </source>