Kadang-kadang saya perlu mencari file dengan karakter beraksen (diakritik secara umum), biasanya dengan loc / mlocate. Saya ingin mengatur (mungkin dalam /etc/updatedb.conf) sehingga saya dapat mencari karakter khusus ini menggunakan pemetaan bahasa tertentu, misalnya:
a == âàáäÂÀÂÄ
e == êèéëÊÈÉË
i == îïíÎÏ
o == ôöóÔÖ
u == ûùüÛÜÙ
c == çÇ
n == ñ
Begitu locate -i liberaciónjuga mencari file dengan string liberacion dan bahkan liberaciòn .
Catatan dan asumsi
- Dan mungkin yang lainnya: ÃÄÀÁÅÆ ÇÈÉÊËÌÍÎÏ ÐÑÒÓÔÕÖØÙÚÛÜÝÞ ßàáâãäåæç èéêëìíîïðñòóôõö øùúûüýþÿ .
- Ini adalah situasi umum pada bahasa romansa seperti Spanyol, Prancis dan Jerman.
- Saya selalu menggunakan lokal 100% UTF-8.
- Saya lebih suka tidak harus menggunakan ekspresi reguler.
- Suatu tambalan mungkin menggunakan transliterasi ASCII dari Unicode seperti halnya Unidecode / cUnidecode . Sebagian besar mlocate ditulis dalam C.
Terkait
- Pertanyaan serupa tetapi menggunakan
find - Miloslav Trmač (
mlocatepengembang) mengatakan di sini bahwa kode sumber resmi ada di pagure.io (dan garpu di Github ). - Saya mengajukan masalah pada mlocate repo di Pagure.io untuk menambahkan fitur ini.
- Pembaruan 2018-02 : Ini dapat diperbaiki dengan permintaan tarik ini oleh marcotrevisan . Akan menambahkan
-t/--transliteratemendukung gunakaniconvuntuk mencocokkan aksen. - Pembaruan 2018-03 :
mlocatedengan dukungan untuk--transliteratesekarang termasuk dalam Ubuntu 18.04 LTS Bionic Beaver ( v2 dan v3.1 ).
- Pembaruan 2018-02 : Ini dapat diperbaiki dengan permintaan tarik ini oleh marcotrevisan . Akan menambahkan
grep -fataufgrepuntuk menghindari interpretasi"$CH"sebagai karakter khusus, mis.grep ^Akan cocok dengan baris apa pun tetapigrep -f ^hanya cocok dengan yang mengandung karakter^. Mungkin juga lebih mudah menggunakan kelas karakter untuk membuat ekspresi reguler, yaituREG="[$CHARS]"mungkin lebih mudah daripadasedperintah Anda . Hati-hati dengan karakter khusus! Kalau tidak, pendekatan yang baik. +1