Wählen Sie einen bestimmten Teil der Ausgabe aus und benennen Sie die Dateien damit um

1

Ich sortiere gerade Dateien, die ich von einem kaputten Dateisystem wiederhergestellt habe. Sie haben jetzt alle Dateinamen, die ungefähr so ​​lauten: f123123123.xls

Wenn ich die Datei "f123123123.xls" ausführe, erhalte ich viele Informationen und manchmal sogar ein letztes gespeichertes Datum.

Beispiel:

./recup_dir.89/f111841280.xls: Composite Document File V2-Dokument, Little Endian, Betriebssystem: Windows, Version 1.0, Codepage: -535, Versionsnummer: 5, Gesamtbearbeitungszeit: 09:58:37, Zuletzt gedruckt: Wed Sep 9 11:57:04 2015, Erstellungszeit / -datum: Do Sep 3 03:15:36 2015, Zuletzt gespeicherte Zeit / Datum: Mo Okt 19 14:28:03 2015

Wie kann ich das zuletzt gespeicherte Datum auswählen und meine Datei folgendermaßen umbenennen: Okt-19-2015.xls?

Joël Mettler
quelle

Antworten:

0

Wir können ein paar Befehle aneinander reihen, um es zu tun. In diesem Beispiel sollen die umbenannten Dateien in ein anderes Verzeichnis geschrieben werden. Sie können nach Belieben verschoben werden. Ich persönlich möchte sie jedoch für den Fall, dass ich ein paar Fehlstarts habe, getrennt halten.

mkdir renamed
for recovered in recup_dir.89/*xls; do
    new_name=$(date +'%b-%d-%Y' -d "$(file "$recovered"| grep -Po 'Last Saved Time/Date:\K[^,]*')")
    if [ -n "$new_name" ]; then
        mv "$recovered" "renamed/$new_name.xls"
    fi
done

Dadurch werden alle XLS-Dateien im Verzeichnis durchlaufen (da diese Informationen nicht in der Ausgabe aller Dateien enthalten sind). Für jeden fileBefehl wird der Befehl ausgeführt und mit GNU greps regulärem Perl-Stil ermittelt, wo er Last Saved Time/Date:angezeigt wird, und es wird nur die Zeit danach angezeigt. Wir werden dann den dateBefehl verwenden, um diese Zeit nach Ihren Wünschen neu zu formatieren, sodass wir nicht viel an einzelnen Feldern in der Ausgabe arbeiten müssen.

Das gibt uns ein Datum des Formats Oct-19-2015und wir verwenden diesen Wert dann im mvBefehl, wie Sie es erwarten würden, aber nur, wenn wir tatsächlich ein Datum zurückbekommen. Wenn Sie nichts zurückbekommen haben, versuchen Sie nicht, die Datei umzubenennen (nur für den Fall, dass die Dinge mit der vorherigen Befehlskette nicht immer richtig funktionieren).

Eric Renouf
quelle