Manchmal muss ich Dateien mit Akzentzeichen (im Allgemeinen diakritisch) durchsuchen, normalerweise mit find / mlocate. Ich möchte (möglicherweise in /etc/updatedb.conf) einrichten, damit ich mit einer bestimmten Sprachzuordnung nach diesen Sonderzeichen suchen kann, zum Beispiel:
a == âàáäÂÀÂÄ
e == êèéëÊÈÉË
i == îïíÎÏ
o == ôöóÔÖ
u == ûùüÛÜÙ
c == çÇ
n == ñ
locate -i liberaciónSuchen Sie also auch nach Dateien mit String Liberacion und sogar Liberaciòn .
Anmerkungen und Annahmen
- Und vielleicht andere: ÂÃÄÀÁÅÆ ÇÈÉÊËÌÍÎÏ ÐÑÒÓÔÕÖØÙÚÛÜÝÞ ßàáâãäåæç èéêëìíîïðñòóôõö øùúûüýþÿ .
- Dies ist eine häufige Situation bei romanischen Sprachen wie Spanisch, Französisch und Deutsch.
- Ich verwende immer ein Gebietsschema 100% UTF-8.
- Ich würde lieber keine regulären Ausdrücke verwenden müssen.
- Ein Patch verwendet möglicherweise ASCII-Transliterationen von Unicode wie Unidecode / cUnidecode . Der größte Teil von mlocate ist auf C geschrieben.
verbunden
- Ähnliche Frage aber mit
find - Miloslav Trmač (
mlocateEntwickler) sagt hier, dass der offizielle Quellcode auf pagure.io (und eine Gabelung auf Github ) ist. - Ich habe ein Problem bei mlocate repo auf Pagure.io eingereicht , um diese Funktion hinzuzufügen.
- Update 2018-02 : Dies kann mit dieser Pull-Anfrage von marcotrevisan behoben werden . Fügt eine
-t/--transliterateUnterstützung hinzu,iconvdie mit Akzent übereinstimmt. - Update 2018-03 :
mlocatemit Unterstützung für--transliterateist jetzt in Ubuntu 18.04 LTS Bionic Beaver ( v2 und v3.1 ) enthalten.
- Update 2018-02 : Dies kann mit dieser Pull-Anfrage von marcotrevisan behoben werden . Fügt eine
grep -foderfgrepvermeiden"$CH", z. B.grep ^würde jede Zeile übereinstimmen, abergrep -f ^nur diejenigen, die das Zeichen enthalten^. Es kann auch einfacher sein, Zeichenklassen zum Erstellen des regulären Ausdrucks zu verwenden, dhREG="[$CHARS]"wahrscheinlich einfacher als IhrsedBefehl. Achten Sie jedoch auf Sonderzeichen! Ansonsten ein guter Ansatz. +1