Working with compressed files: Difference between revisions

From LPTMS Wiki
Jump to navigation Jump to search
m (Created page with "Linux usually provides a couple of command piping gzip zgreg, zcat, zdiff, zless, zmore, zegrep,... Here is a simple extension of ''tail'' and ''head'' for zipped files, that yo...")
 
mNo edit summary
Line 1: Line 1:
Linux usually provides a couple of command piping gzip
Linux usually provides a couple of command piping gzip
  zgreg, zcat, zdiff, zless, zmore, zegrep,...
  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:
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">
<source lang="bash">

Revision as of 15:07, 23 November 2011

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>