직원 테이블을 만들었습니다.
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부터 무한대까지입니다.