#! /bin/sh # clean up mined position marker file @mined.mar verbose=false minclean () { LC_ALL=C export LC_ALL egrep -n "." @mined.mar | sed -e 's,:, ,' | sort -r +1 -2 +0rn -1 | sed -e 's,^[^ ]* \([^ ]*\) \(.*\)$,\2 \1,' -e 's, ,,g' | uniq -f 1 | sed -e 's,^\(.*\) \([^ ]*\)$,\2 \1,' -e 's,, ,g' > @mined.mmm /bin/mv @mined.mar @mined.bak if $remove then while read line do set - $line if [ -f "$1" ] then echo $* fi done < @mined.mmm > @mined.mar /bin/rm @mined.mmm else /bin/mv @mined.mmm @mined.mar fi ls -l @mined.bak @mined.mar rm -f @mined.bak } if [ "$1" = "-" ] then remove=true shift else remove=false fi export remove for d in ${*-.} do if [ -d $d ] then if [ -f $d/@mined.mar ] then $verbose && echo tidying $d/@mined.mar (cd $d; minclean) else echo no @mined.mar in $d fi else if [ "`basename $d`" = "@mined.mar" ] then if [ -f $d ] then $verbose && echo tidying `dirname $d`/@mined.mar (cd `dirname $d`; minclean) else echo $d does not exist fi else echo $d not touched fi fi done