![Grep은 특정 패턴과 일치하는 단어를 찾고 악센트를 무시합니다.](https://linux55.com/image/149687/Grep%EC%9D%80%20%ED%8A%B9%EC%A0%95%20%ED%8C%A8%ED%84%B4%EA%B3%BC%20%EC%9D%BC%EC%B9%98%ED%95%98%EB%8A%94%20%EB%8B%A8%EC%96%B4%EB%A5%BC%20%EC%B0%BE%EA%B3%A0%20%EC%95%85%EC%84%BC%ED%8A%B8%EB%A5%BC%20%EB%AC%B4%EC%8B%9C%ED%95%A9%EB%8B%88%EB%8B%A4..png)
이것은 부분적으로만 해결할 수 있는 숙제 문제입니다.
grep
나는 이 기능을 사용 하여 목록에서 't'로 구분된 세 개의 'e'가 포함된 단어를 찾고 악센트를 구분하지 않는 검색을 수행하고 싶습니다 .
정규식으로 얻을 수 있는 가장 가까운 것은 다음과 같습니다.
grep 'e.*t.*e.*t.*e' mylist
이에 대해 두 가지 질문이 있습니다.
- 이와 같은 패턴을 사용하여 악센트를 구분하지 않고 검색하는 방법을 이해할 수 없습니다. 최근에 동등 클래스 연산자에 대해 들어봤지만 검색 구문에 이를 포함시키는 방법을 모르겠습니다.
- 이 검색에서 얻은 일치 패턴에는 반복되는 "t"가 포함되지 않습니다.
답변1
e
정규식 엔진이 이를 지원하는 경우 기본적으로 문자를 동등한 클래스로 바꾸면 됩니다.[[=e=]]
전임자.
$ grep -m 10 '[[=e=]].*t.*[[=e=]].*t.*[[=e=]]' /usr/share/dict/french
absentéiste
absentéistes
anesthésiste
anesthésistes
cafés-théâtres
café-théâtre
casse-tête
centimètre
centimètres
centripète
바라보다시퀀스 및 해당 문자 대조