2016-09-07 5 views
0

Gibt es eine Möglichkeit, alle Dateien in einem tar.gz-Archiv zu finden, das eine bestimmte 'Zeichenkette' enthält, und diese Dateien nur in einen bestimmten Ordner zu extrahieren?Zeichenkette in tar.gz suchen und Ergebnis extrahieren

zgrep -a 'strangtofind' inArchive.tar.gz gibt mir das Ergebnis, in welchen Dateien die Zeichenfolge gefunden werden kann, aber ich kann nichts tun, ohne das gesamte Archiv zu extrahieren.

Gibt es einen Weg um dies?

EDIT: Ich brauche nicht zu verwenden zgrep, jede Möglichkeit gibt, wäre für mich zu genügen, ebenso wie seine relativ schnelle Operationen

Antwort

0

(Unter der Annahme, GNU tar, glaube ich) Sie so etwas wie

versuchen könnte

zgrep -a 'stringtofind' inArchive.tar.gz> your.list

dann

tar zxf inArchive.tar.gz --files-from =

your.list
+0

EDIT: Ja, mit GNU-Teer 1.23. Ich habe deinen Vorschlag ausprobiert, aber es funktioniert nicht wirklich. Die> your.list dumps nur den gesamten Dateiinhalt in die Liste und dann beim Versuch mit tar --files-from = your.list im Fehler zu finden. Vielleicht würde das funktionieren, wenn ich die Dateinamen irgendwie nur auf> your.list schieben könnte? – user1988591

+0

Rechts. Ich nahm an, dass dein zgrep bereits (nur) die Dateinamen ausgibt, aber ich nehme an, dass es das nicht tut. Hmmm. –

Verwandte Themen