여러 항목으로 채워진 텍스트 파일에서 다음 패턴의 문자열을 검색하려면:
entry=G_1234
entry=G_5678
entry=G_2345
다음 grep 문은 결과를 제공하지 않습니다.
grep -ioe "entry=G_{1234,2345}" filename
오류가 어디에 있는지 또는 grep에서 매개변수 확장이 불가능한지 안내해 주시겠습니까?
답변1
누구나:
grep -iEo 'entry=G_(1234|2345)'
즉, E
정규식의 확장( ) 교대 연산자를 사용합니다.
또는 중괄호 확장을 지원하는 쉘의 경우 다음을 사용하십시오.
grep -io '-eentry=G_'{1234,2345}
그런 다음 쉘은 이를 다음으로 확장합니다.
grep -io -eentry=G_1234 -eentry=G_2345
grep이 이 둘 중 하나를 찾게 만듭니다.이자형표현하다.
답변2
Grep은 쉘 패턴이 아닌 정규식을 사용합니다. 정규식에는 다양한 구문이 있습니다.
grep -ioe 'entry=G_\(1234\|2345\)' filename