
Ich muss die Stammverzeichnisse einer zusammengesetzten Datei auf einem Linux-System abrufen. Dazu habe ich versucht, 7zip (p7zip-full) zu verwenden, da dieses Tool das zusammengesetzte Dateiformat lesen kann.
Das funktioniert grundsätzlich gut, aber der ausgegebene Text ist furchtbar und lässt sich schlecht analysieren.
Daher lautet meine Frage an die Community: Besteht eine Möglichkeit, diese Ausgabe so zu analysieren, dass eine Ausgabe wie die folgende entsteht:
- IPC_0805_CHIP_CAP
- Dateikopfzeile
- Bibliothek
- ZForm
- DO-214AA
- ...
?
Ich brauche diese Informationen in einem PHP-Skript. Am Ende wird der Befehl also von einem PHP-Skript ausgeführt. Wenn es eine Möglichkeit gibt, die zusammengesetzte Dateistruktur direkt mit PHP zu lesen, wäre dies sehr willkommen.
Danke
Antwort1
Das ist eine Ausgabe, und 7z scheint nicht viele Formatierungsoptionen zu bieten. Ich würde es nicht einfach mit grep versuchen, aber eine Kombination aus head, tail und cut sollte gut genug funktionieren, um nur die Dateinamen auszugeben, und ähnliche Schnitte sollten für die anderen Informationen funktionieren, tee
und Prozesssubstitution ( <()
) könnte helfen. Oder schneiden Sie einfach jede Zeile mit PHP zeichenweise ab (damit kenne ich mich nicht gut genug aus).
Meine 7zr-Version hat am Anfang 18 Zeilen mit Nicht-Dateinamen-Informationen und am Ende 2 Zeilen, wobei jede Zeile am Anfang 54 Nicht-Dateinamen-Zeichen hat. Passen Sie dies an, wenn Ihre Version anders ist:
$ 7zr l test.7z |tail -n+18|head -n-2|cut -c54-
file1
file2
file3