grep에서 정규식을 사용하여 문자열을 찾는 방법

grep에서 정규식을 사용하여 문자열을 찾는 방법

list그래서 회사에 있는 사람들의 목록이 포함된 파일이 있습니다. 각 행에는 직위(짧은 문자열), 연도, 이름(성과 이름), 급여 및 국적(대문자 3개)이 포함됩니다. 쉼표로 구분됩니다.

grep과 regex를 사용하여 두 가지를 찾고 싶습니다.

  1. 성이 C로 시작하는 사람입니다.
  2. 이름이 3개인 모든 사람

처음 시도한 것은 다음과 같습니다. grep -E 'C\>' list그러나 이름만 반환합니다(이상합니다). 두 번째 경우: grep "[[:alpha:]]\b[ ]\?[[:alpha:]]\b[]\?[[:alpha:]]" list하지만 역시 실패합니다.

답변1

\>단어 끝에 대한 (길이가 0인) 정규식이므로 C\>성과 일치하지 않을 수 있습니다.시작"C"로. 어쩌면 시도해 봐야 할 것 같습니다 \<C.

[[:alpha:]]성냥정확히 하나문자이므로 실제 이름과도 일치하지 않을 가능성이 높습니다. *또는 같은 승수를 추가해야 합니다 +(ERE에서만?).

관련 정보