grep 명령은 철자가 다른 동일한 단어를 표시합니다.

grep 명령은 철자가 다른 동일한 단어를 표시합니다.

직원 테이블을 만들었습니다.

    1 Andy Account
    2 Grecie HR
    3 Jyorge Marketing
    4 Seeya HR
    5 Princy Account
    6 Siya Production

여기서 네 번째 직원과 여섯 번째 직원은 이름은 같지만 철자가 다릅니다. 그래서 grep 명령을 사용하여 해당 레코드만 표시하고 싶습니다. 나는 이전에 시도했습니다:

grep S[iee]ya emp

그리고

grep S[[i][ee]]ya emp

그러나 성공하지 못했습니다. 해결책이 있나요?

답변1

[...]|or 연산자가 포함된 그룹을 사용하려는 그룹 대신 문자 클래스를 만듭니다.

grep 'S\(ee\|i\)ya' emp

이와 같은 그룹을 만들고 그 두 줄을 찾을 것입니다. grep에게 확장 정규식을 사용하도록 지시하여 정리할 수도 있습니다. -E그런 다음 문자를 특별하게 만들기 위해 문자를 이스케이프 처리할 필요가 없습니다.

grep -E 'S(ee|i)ya' emp

답변2

grep에는 OR 연산자 "|"가 필요합니다.

grep -E 'S(i|ee)ya' emp

4 Seeya HR
6 Siya Production

답변3

grep 'S.*ya' 

작동하는 것 같습니다. 수량자 일치 수의 *범위는 0부터 무한대까지입니다.

관련 정보