Книга: UNIX — универсальная среда программирования

3.8.24 get

3.8.24 get
# get: extract file from history
PATH=/bin:/usr/bin
VERSION=0
while test "$1" != ""
do
 case "$1" in
 -i) INPUT=$2; shift ;;
 -o) OUTPUT=$2; shift ;;
 -[0-9]) VERSION=$1 ;;
 -*) echo "get: Unknown argument $i" 1>&2; exit 1 ;;
 *) case "$OUTPUT" in
  "") OUTPUT=$1 ;;
  *) INPUT=$1.H ;;
  esac
 esac
 shift
done
OUTPUT=${OUTPUT?"Usage: get [-o outfile] [-i file.H] file"}
INPUT=${INPUT-$OUTPUT.H}
test -r $INPUT || { echo "get: no file $INPUT" 1>&2; exit 1; }
trap 'rm -f /tmp/get.[ab]$$; exit 1' 1 2 15
# split into current version and editing commands
sed <$INPUT -n '1,/^@@@/w /tmp/get.a'$$'
/^@@@/,$w /tmp/get.b'$$
# perform the edits
awk </tmp/get.b$$ '
 /^@@@/ { count++ }
 !/^@@@/ && count > 0 && count <= - '$VERSION'
 END { print "$d"; print "w", "'$OUTPUT'" }
' | ed - /tmp/get.a$$
rm -f /tmp/get.[ab]$$

Оглавление книги


Генерация: 0.278. Запросов К БД/Cache: 0 / 2
поделиться
Вверх Вниз