1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

find und umlaute

Dieses Thema im Forum "Unix & Terminal" wurde erstellt von CloneOfMyself, 11.11.09.

  1. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    Hallöle zusammen.
    Hat jemand eine Idee, wie ich gezielt mit find nach Ordnern/Dateien suchen kann, die einen Umlaut enthalten (Beispiel: suche rekursiv nach Ordnern die "Hallöle" heissen)? quotes und single quotes helfen da leider nicht wirklich weiter... der Ordner wird nicht gefunden.
     
  2. pepi

    pepi Cellini

    Dabei seit:
    03.09.05
    Beiträge:
    8.741
    Oktal escapen oder besser das Terminal auf UTF-8 umstellen!
    Gruß Pepi
     
  3. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    Dank zunächst für Hilfe, pepi... Bin ja schon froh, dass nicht die Frage nach dem "Warum/Wozu" gekommen ist.
    Ich dachte, das wäre schon so. Das Ergebnis wird ja schliesslich auch korrekt ausgegeben wenn ich z.B. so suche:
    Code:
    find /verzeichnis -name 'Hall*le'
    /verzeichnis/Hallöle
    
    Nur eben für die Suche selbst geht's so nicht.

    Und wie müsste es denn oktal escaped aussehen für diesen konkreten Fall. Und wie stelle ich es an, wenn der zu suchende Name aus einer Variablen kommt, diesen entsprechend zu wandeln?
    Ich bräuchte das für's shell-scripting in AppleScript. Die Variable würde also aus AS kommen.
     
  4. sedna

    sedna Pomme Etrangle

    Dabei seit:
    22.10.08
    Beiträge:
    911
    Hallo CloneOfMyself!

    Ja, "Terminal auf UTF-8 umstellen" hilft nicht.
    In der Technical Note, aus dem das nette Zitat stammt, wird Perl empfohlen.
    Das kann man ja mit do shell script aufrufen.
    Wer Perl nicht beherrscht, kann zwar den "Übersetzer" find2perl benutzen, aber das hilft nur bedingt, da im Perlscript schon reingeschrieben werden muss, dass es auch nach Umlauten suchen muss... Ob da ein use utf-8 reicht, weiß ich nicht, da meine Perl Kenntnisse gegen Null gehen.

    Escapen wird in deinem Fall umständlich, denke ich.
    Da ist es wohl einfacher, einen Platzhalter * für die Umlaute zu benutzen und das im AppleScript zu regeln. Also Zeichen ersetzen und das ausgegebene Ergebniss mit der Variable zu vergleichen.

    Ansonsten gibt es ja in dem kleinen aber feinen Forum, wo ich schon von dir gelesen habe, einen Perl Experten :)
     
  5. Rastafari

    Rastafari Golden Noble

    Dabei seit:
    10.03.05
    Beiträge:
    17.896
    Code:
    [size="-1"]find /path -type d -name "$( echo "Hallöle" | iconv -t UTF-8-MAC )" [/size]
     
     
  6. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    DANKE. DANKE. DANKE... euch allen zusammen und insbesondere Rastafari: Das war genau der Bringer, auf den ich gehofft hatte. Obwohl ich das gute alte iconv kannte, wäre ich NIE auf die Lösung und diese Konstellation gekommen... Supisache! Musste ja was rauskommen, wenn sich soviel geschätzte Kompetenz versammelt... Vielen Dank für die Mühe!
    so werde ich's machen:
    Code:
    find /ver/zeich/nis -type d -name "$( iconv -t UTF-8-MAC <<< 'Hallöle')"
     

Diese Seite empfehlen