Root/tools/lguest/extract

1#! /bin/sh
2
3set -e
4
5PREFIX=$1
6shift
7
8trap 'rm -r $TMPDIR' 0
9TMPDIR=`mktemp -d`
10
11exec 3>/dev/null
12for f; do
13    while IFS="
14" read -r LINE; do
15    case "$LINE" in
16        *$PREFIX:[0-9]*:\**)
17        NUM=`echo "$LINE" | sed "s/.*$PREFIX:\([0-9]*\).*/\1/"`
18        if [ -f $TMPDIR/$NUM ]; then
19            echo "$TMPDIR/$NUM already exits prior to $f"
20            exit 1
21        fi
22        exec 3>>$TMPDIR/$NUM
23        echo $f | sed 's,\.\./,,g' > $TMPDIR/.$NUM
24        /bin/echo "$LINE" | sed -e "s/$PREFIX:[0-9]*//" -e "s/:\*/*/" >&3
25        ;;
26        *$PREFIX:[0-9]*)
27        NUM=`echo "$LINE" | sed "s/.*$PREFIX:\([0-9]*\).*/\1/"`
28        if [ -f $TMPDIR/$NUM ]; then
29            echo "$TMPDIR/$NUM already exits prior to $f"
30            exit 1
31        fi
32        exec 3>>$TMPDIR/$NUM
33        echo $f | sed 's,\.\./,,g' > $TMPDIR/.$NUM
34        /bin/echo "$LINE" | sed "s/$PREFIX:[0-9]*//" >&3
35        ;;
36        *:\**)
37        /bin/echo "$LINE" | sed -e "s/:\*/*/" -e "s,/\*\*/,," >&3
38        echo >&3
39        exec 3>/dev/null
40        ;;
41        *)
42        /bin/echo "$LINE" >&3
43        ;;
44    esac
45    done < $f
46    echo >&3
47    exec 3>/dev/null
48done
49
50LASTFILE=""
51for f in $TMPDIR/*; do
52    if [ "$LASTFILE" != $(cat $TMPDIR/.$(basename $f) ) ]; then
53    LASTFILE=$(cat $TMPDIR/.$(basename $f) )
54    echo "[ $LASTFILE ]"
55    fi
56    cat $f
57done
58
59

Archive Download this file



interactive