list
그래서 회사에 있는 사람들의 목록이 포함된 파일이 있습니다. 각 행에는 직위(짧은 문자열), 연도, 이름(성과 이름), 급여 및 국적(대문자 3개)이 포함됩니다. 쉼표로 구분됩니다.
grep과 regex를 사용하여 두 가지를 찾고 싶습니다.
- 성이 C로 시작하는 사람입니다.
- 이름이 3개인 모든 사람
처음 시도한 것은 다음과 같습니다. grep -E 'C\>' list
그러나 이름만 반환합니다(이상합니다). 두 번째 경우: grep "[[:alpha:]]\b[ ]\?[[:alpha:]]\b[]\?[[:alpha:]]" list
하지만 역시 실패합니다.
답변1
\>
단어 끝에 대한 (길이가 0인) 정규식이므로 C\>
성과 일치하지 않을 수 있습니다.시작"C"로. 어쩌면 시도해 봐야 할 것 같습니다 \<C
.
[[:alpha:]]
성냥정확히 하나문자이므로 실제 이름과도 일치하지 않을 가능성이 높습니다. *
또는 같은 승수를 추가해야 합니다 +
(ERE에서만?).