
Mein Archivmanager scheint also beim Extrahieren einer Tar.xz-Datei die Verzeichnishierarchie nicht beibehalten zu haben. Jetzt ist mein Download-Ordner unordentlich und voller Dateien, die nicht an den richtigen Stellen liegen.
Ich möchte nur die Dateien löschen, die ursprünglich im Archiv waren. Dazu versuche ich, die Enden der einzelnen Dateipfade aus der Ausgabe abzugleichen tar tf file.tar.xz
und die zugehörigen Dateien zu löschen.
Wenn die Eingabe beispielsweise lautet:
tor-browser_en-US/Browser/firefox
tor-browser_en-US/Browser/firefox.real
tor-browser_en-US/Browser/fonts/
tor-browser_en-US/Browser/fonts/Arimo-Bold.ttf
Ich möchte folgende Ausgabe:
firefox
firefox.real
Arimo-Bold.ttf
damit ich sie löschen kann.
Ich habe versucht, dies mit zu erreichen, sed 's/.*\/([^\/]+)$/\1/'
aber dabei tritt der Fehler auf sed: -e expression #1, char 19: invalid reference \1 on 's' command's RHS
und ich bin nicht sicher, was ich sonst versuchen soll.
Antwort1
sed '/\/$/d; s|.*/||'
/\/$/d
Entfernt alle Zeilen mit einem abschließenden /
. s|.*/||
Entfernt alles vor der letzten /
(sofern vorhanden) und dem /
selbst.