Am Mittwoch, 30. Juni 2004 15:45 schrieb Peter Soltau:
Am Mit, 30 Jun 2004, schrieb Maggi:
Ich habe irgendwo auf der Suse Platte in einem tar Archiv eine wichtige Datei in der "suchwort" steht. Gibt es ein grep, dass tar files lesen kann? Danke Astrid
Hallo Astrid
zgrep <suchwort> <tarfile>
Nein - damit wird tarfile als eine Datei betrachtet - Du kriegst damit nicht raus, in _welcher_ Datei des Archivs das Suchwort steht. Du kannst es höchstens erraten, wenn das Wort zufälligerweise in der ersten Zeile der Datei steht - ansonsten siehst Du den Dateinamen nicht: jan@jack:~/tmp/tar-test> echo "suchwort" >datei1 jan@jack:~/tmp/tar-test> echo "anderes wort" >datei2 jan@jack:~/tmp/tar-test> echo "mal was ganz anderes" >datei3 jan@jack:~/tmp/tar-test> for i in `seq 1 10`; do echo wort$i
datei3; done jan@jack:~/tmp/tar-test> tar cvzf test.tgz datei* datei1 datei2 datei3 jan@jack:~/tmp/tar-test> zgrep wort test.tgz datei10100644000175000001440000000001110070606604010627 0ustar januserssuchwort datei20100644000175000001440000000001510070606614010635 0ustar janusersanderes wort wort1 wort2 wort3 wort4 wort5 wort6 wort7 wort8 wort9 wort10
Du siehst: nur in datei1 und datei2, die das Wort in der ersten Zeile enthalten, kann man mit ein wenig Fantasie den Dateinamen erraten. IMHO hilft nur Auspacken und dann per grep -l suchen. Jan