Hallo, Am Fri, 12 Mar 2004, Thilo Gramlich schrieb:
Hallo!
Am Donnerstag, 11. März 2004 11:38 schrieb Marco Schuler:
Leider funktioniert meine Befehlszeile aber immer noch nicht:
find . -type f -print0 | xargs -0 file {} | grep tar | sed 's/: *[POSIX]* tar archive//' | sed 's/.\///' | tar -xvf - -C
*urgsl* useless use of grep, useless use of sed. Eine Kette wie grep foo | sed '...' ist _immer_ ueberfluessig und durch: sed '/foo/{ ...; }' ersetzbar. Ebenso ist sed 'aaa' | sed 'bbb' immer durch ein einzelnes sed ersetzbar, und sei's mittels sed -e 'aaa' -e 'bbb', meist geht aber sed -e 'aaa;bbb;'. find . -type f -print0 \ | xargs -0 file \ | sed -n '/tar archive/s/^\([^:]\+\): .*/\1/p' \ | while read f; do \ test -r "$f" && tar -C <zieldir> -xvf "$f"; \ done Obiges klappt mit fast allen Dateinamen (mit Zeilenumbruechen klappt's nicht). -dnh -- If you haven't got time to RTFM, you haven't got time to whine on this mailing list.