#!/bin/sh FILE=file ZCAT="gunzip -c" BZCAT="bzcat" CAT="cat" AWK="gawk" mclslRfs_list () { MYCAT="$CAT" case "$1" in *.bz2) MYCAT="$BZCAT";; *.gz) MYCAT="$ZCAT";; *.z) MYCAT="$ZCAT";; *.Z) MYCAT="$ZCAT";; esac $MYCAT "$1" | $AWK ' BEGIN { dir="" } /^total\ [0-9]*$/ { next } /^$/ { next } /^[^\ \ ]*:$/ { if ($0 ~ /^\//) dir=substr($0, 2) else dir=$0 if (dir ~ /\/:$/) sub(/:$/, "", dir) else sub(/:$/, "/", dir) next } { printf "%s %3d %-8s %-8s %8d %3s %2d %5s %s%s", $1, $2, $3, $4, $5, $6, $7, $8, dir, $9 if (NF > 9) printf " %s %s\n", $10, $11 else printf "\n" }' 2>/dev/null } case "$1" in list) mclslRfs_list $2; exit 0;; esac exit 1