때로는 액센트 문자 (일반적으로 분음 부호)가있는 파일 (일반적으로 찾기 / 이동)을 사용하여 파일을 검색해야합니다. /etc/updatedb.conf
예를 들어 특정 언어 매핑을 사용 하여이 특수 문자를 검색 할 수 있도록 설정하고 싶습니다 ( ).
a == âàáäÂÀÂÄ
e == êèéëÊÈÉË
i == îïíÎÏ
o == ôöóÔÖ
u == ûùüÛÜÙ
c == çÇ
n == ñ
따라서 locate -i liberación
문자열 liberacion 및 심지어 liberaciòn 파일도 검색 하십시오 .
참고 및 가정
- 그리고 다른 사람 : ÂÃÄÀÁÅÆ ÇÈÉÊËÌÍÎÏ ÐÑÒÓÔÕÖØÙÚÛÜÝÞ ßàáâãäåæç èéêëìíîïðñòóôõö øùúûüýþÿ .
- 이것은 스페인어, 프랑스어 및 독일어와 같은 로맨스 언어 에서 일반적인 상황입니다 .
- 항상 로케일 100 % UTF-8을 사용하고 있습니다.
- 오히려 정규 표현식을 사용할 필요가 없습니다.
- 패치는 Unidecode / cUnidecode에서 와 같이 유니 코드의 ASCII 음역을 사용할 수 있습니다 . mlocate의 대부분은 C로 작성되었습니다.
관련
- 비슷한 질문이지만 사용
find
- Miloslav Trmač (
mlocate
개발자) 는 공식 소스 코드는 pagure.io (그리고 Github의 포크 )에 있다고 말합니다 . - 나는 파일 Pagure.io에서 mlocate의 repo에 문제를 이 기능을 추가 할 수 있습니다.
- 업데이트 2018-02 : 이것은 고정 할 수있다 이 풀의 요청 에 의해 marcotrevisan . 악센트 일치에
-t
/--transliterate
지원을 추가합니다iconv
. - 2018-03 업데이트 :
mlocate
지원 기능--transliterate
이 Ubuntu 18.04 LTS Bionic Beaver ( v2 및 v3.1 )에 포함되었습니다.
- 업데이트 2018-02 : 이것은 고정 할 수있다 이 풀의 요청 에 의해 marcotrevisan . 악센트 일치에
grep -f
하거나fgrep
피할 수 있습니다"$CH"
. 예를 들어grep ^
모든 행grep -f ^
과 일치 하지만 문자가 포함 된 행 과 만 일치합니다^
. 정규식을 만들기 위해 문자 클래스를 사용하는 것이 더 쉬울 수도 있습니다. 예를 들어 명령REG="[$CHARS]"
보다 쉽습니다sed
. 그러나 특별한 캐릭터를 조심하십시오! 그렇지 않으면 좋은 접근 방식입니다. +1