grep과 함께 OR을 사용하는 방법은 무엇입니까?

grep과 함께 OR을 사용하는 방법은 무엇입니까?

grep 'd(o|i)g' a.txta.txt 포함을 실행했지만 dig아무것도 반환되지 않았습니다. dog이것이 올바른 일치 방법입니까 dig?

답변1

예, d(o|i)g이것이 올바른 방법입니다. d[oi]g개별 캐릭터를 다루기 때문에 이 작업을 수행할 수도 있습니다 .

-E확장 정규식을 얻으려면 grep 호출에서 이 플래그를 사용해야 합니다 .

$ cat a.txt
bird
dog
cat
dug
$ grep 'd(o|i)g' a.txt
$ grep -E 'd(o|i)g' a.txt
dog

답변2

정규식 메타 문자를 이스케이프해야 합니다.

> echo dig | grep "d\(o\|i\)g"
dig

, 또는 ERE("확장 정규 표현식")로 전환할 수 있습니다.

echo dig | grep -E "d(o|i)g"
dig

답변3

시도해 볼 수도 있지만 grep 'd[io]g'이는 단일 캐릭터에만 적용됩니다.

관련 정보