Hallo,
in einem von einem WINDOWS-PC übernommenem Datenbestand habe ich eine größere Anzahl .lnk-Files (WINDOWS-Verknüpfungen, in allen Fällen auf PDF oder Office-Dateien); diese möchte ich auflesen und dann durch Soft-Links ersetzen.
Erster Schritt: Auflisten der .lnk-Dateien –> OK
$ find -name "*.lnk" ./SID - Doku 55 - Systeme für mich.pdf.lnk ./SID - Doku 57 - Office.pdf.lnk
Zweiter Schritt: Inhalt der .lnk-Datei auslesen (Quelle) –> teilweise OK, aber Namen von Ziel-Dateien mit Umlauten werden verstümmelt:
$find -iname \*.lnk -exec strings "{}" \; | egrep -i "^[[:alnum:] äöüÄÖÜß]:\\\\" C:\Daten\SID - Doku 55 - Systeme f C:\Daten\Projekte\Doku 57 - Office.pdf
Problem (wie hier) der Zeichensatz-Kodierung? Erfolglos habe iconv ich versucht:
iconv -f ISO_8859-15 -t UTF-8 "SID - Doku 55 - Systeme für mich.pdf.lnk" -o "neuSID - Doku 55 - Systeme für mich.pdf.lnk"
Das Ergebnis des egrep-Befehls bleibt für beide Versionen verstümmelt.
Wie kann ich die Aufgabe trotzdem lösen? Wie lässt sich die Kodierung der .lnk-Files herausfinden?
Meine Zeichensatz-Kodierung:
$ file /var/log/syslog /var/log/syslog: UTF-8 Unicode text, with very long lines