2016-06-11 22 views
1

Ich versuche, den Inhalt der Datei in der XAR-Datei zu lesen, ohne sie über die Befehlszeile zu extrahieren.Lesen Sie den Inhalt der Datei in der XAR-Datei über die Befehlszeile

Wenn ich den Befehl ausführen,

xar -tf filename.xar | grep -i 'info' 

es die ganze Datei auflisten, die ich nach bin.

Aber wenn ich versuche, den Inhalt dieser Datei zu lesen verwenden,

cat `xar -tf filename.xar | grep -i 'info'` 

erhalte ich die Fehlermeldung, die besagt Katze: Dateiname: Keine solche Datei oder das Verzeichnis

+0

Wenn xar ist wie tar dann steht das Argument -t für test und gibt eine Menge Strings mit einer Zeile für jede Datei in der TAR-Datei aus. Grep gibt Ihnen eine Untermenge jener Namen, die 'info' enthalten. Sie müssen die Dateien tatsächlich aus dem Teer herausholen, indem Sie stattdessen das Argument -x verwenden. Allerdings fügt -x jede Datei in eine neue Datei in Ihrem Verzeichnis oder in Unterverzeichnisse ein, wenn der tar Unterverzeichnisse enthält. – Marichyasana

+1

Versuchen Sie 'xar -x -f Dateiname.xar --to-stdout $ (xar -tf Dateiname.xar | grep -i 'info')' –

+0

@MarkPlotnick Getting * xar: unerkannte Option '--to-stdout' * – Ishan

Antwort

0

Sie, wo auf der rechten Seite track, aber das Problem ist, dass Sie eine Katze verwenden, um eine Datei zu lesen, die nicht aus dem Archiv extrahiert wurde. Sie müssen das Archiv zuerst extrahieren, bevor Sie seinen Inhalt lesen können. Verwenden Sie diesen Code, die extrahiert die Datei liest dann die ‚Info‘ file:

xar -xf filename.xar; cat `xar -tf filename.xar | grep -i 'info'` 

hoffe, das hilft: D (u könnte ein Code am Ende hinzufügen, löschen die addierten extrahierten Dateien)