mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-28 14:44:10 +08:00
07fe9977b6
This is a better location instead of having it in Documentation. Signed-off-by: Davidlohr Bueso <dave@gnu.org> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (fixed compile)
59 lines
1.2 KiB
Bash
59 lines
1.2 KiB
Bash
#! /bin/sh
|
|
|
|
set -e
|
|
|
|
PREFIX=$1
|
|
shift
|
|
|
|
trap 'rm -r $TMPDIR' 0
|
|
TMPDIR=`mktemp -d`
|
|
|
|
exec 3>/dev/null
|
|
for f; do
|
|
while IFS="
|
|
" read -r LINE; do
|
|
case "$LINE" in
|
|
*$PREFIX:[0-9]*:\**)
|
|
NUM=`echo "$LINE" | sed "s/.*$PREFIX:\([0-9]*\).*/\1/"`
|
|
if [ -f $TMPDIR/$NUM ]; then
|
|
echo "$TMPDIR/$NUM already exits prior to $f"
|
|
exit 1
|
|
fi
|
|
exec 3>>$TMPDIR/$NUM
|
|
echo $f | sed 's,\.\./,,g' > $TMPDIR/.$NUM
|
|
/bin/echo "$LINE" | sed -e "s/$PREFIX:[0-9]*//" -e "s/:\*/*/" >&3
|
|
;;
|
|
*$PREFIX:[0-9]*)
|
|
NUM=`echo "$LINE" | sed "s/.*$PREFIX:\([0-9]*\).*/\1/"`
|
|
if [ -f $TMPDIR/$NUM ]; then
|
|
echo "$TMPDIR/$NUM already exits prior to $f"
|
|
exit 1
|
|
fi
|
|
exec 3>>$TMPDIR/$NUM
|
|
echo $f | sed 's,\.\./,,g' > $TMPDIR/.$NUM
|
|
/bin/echo "$LINE" | sed "s/$PREFIX:[0-9]*//" >&3
|
|
;;
|
|
*:\**)
|
|
/bin/echo "$LINE" | sed -e "s/:\*/*/" -e "s,/\*\*/,," >&3
|
|
echo >&3
|
|
exec 3>/dev/null
|
|
;;
|
|
*)
|
|
/bin/echo "$LINE" >&3
|
|
;;
|
|
esac
|
|
done < $f
|
|
echo >&3
|
|
exec 3>/dev/null
|
|
done
|
|
|
|
LASTFILE=""
|
|
for f in $TMPDIR/*; do
|
|
if [ "$LASTFILE" != $(cat $TMPDIR/.$(basename $f) ) ]; then
|
|
LASTFILE=$(cat $TMPDIR/.$(basename $f) )
|
|
echo "[ $LASTFILE ]"
|
|
fi
|
|
cat $f
|
|
done
|
|
|