Hallo, Am Wed, 28 Apr 2004, Ekkard Gerlach schrieb:
# Aufruf: Parameter 1: Dateiname , Parameter 2: Suchtext (.. normalerweise umgekehrt)
Wuerde ich auch umstellen...
lll=`pwd` ^^^ Uh? Aussagekraeftige Variablennamen sind die halbe Miete.
pwdp="`pwd -P`" ## die "" falls ein Leerzeichen im Pfad vorkommt!
UNZIP_DIR=/tmp/~oo-unzip test -d $UNZIP_DIR || mkdir $UNZIP_DIR chmod +w $UNZIP_DIR/* rm -R $UNZIP_DIR/*
*GRRRRRRRRRRRR* Bitte arbeite hier mit mktemp!!! UNZIP_DIR="`mktemp -d /tmp/oo-unzip.$$.XXXXXX`" (den Rest kannst du dir sparen, s.u.)
echo "===================== $1 ================" cp $1 $UNZIP_DIR ^^ *PARDAUZ*
Hier faellst du schonmal ordentlich auf die Fresse, wenn $1 Leerzeichen enthaelt, was gerade bei "Office"-Dokumenten ja geruechtehalber durchaus oefter mal vorkommen kann...
cd $UNZIP_DIR unzip -o `basename $1` 2>&1 >>/dev/null
Dito.
/usr/local/bin/gf "$2" content.xml -i | sed -e 's/<[^>]*>//g' cd $lll
Hier gilt praktisch o.g. erneut... ==== UNGETESTET!!! ==== #!/bin/sh # Achtung: Parameter vertauscht: $0 Suchtext Datei(en)... UNZIP_DIR="`mktemp -d /tmp/oo-unzip.$$.XXXXXX`" PATTERN="$1" shift trap 'rm -rf "$UNZIP_DIR"' 1 2 3 4 6 13 14 15 EXIT while test $# -gt 0 do echo "searching in '$1':" cp "$1" "$UNZIP_DIR" ### [1] pushd "$UNZIP_DIR" unzip -o "`basename \"$1\"` content.xml 2>&1 >/dev/null gf "$PATTERN" content.xml -i | sed -e 's/<[^>]*>//g' ### [2] rm -f content.xml popd shift done ==== -dnh [1] ich bin zu faul, hier jetzt etwas, das absolute und relative Dateinamen beruecksichtigt hinzuschreibseln... [2] 'gf' muss im PATH sein, was bei /usr/local/bin normalerweise der Fall ist, sonst muesste man auch den Rest (mktemp, cp, unzip, usw.) mit absoluten Pfaden aufrufen. Ggfs. macht man halt ein: GF="/usr/local/bin/gf" ... $GF "$1" content.xml draus... -- If you haven't got time to RTFM, you haven't got time to whine on this mailing list.