두 개의 정규식이 포함된 파일에서 행을 인쇄하는 방법(그 중 하나는 다른 정규식의 하위 문자열)

두 개의 정규식이 포함된 파일에서 행을 인쇄하는 방법(그 중 하나는 다른 정규식의 하위 문자열)

파일에 다음이 있는 경우 -

apple,orange,banana
orange
ora,orange,apple
apple,ora
orange,apple,ora,banana

다음을 포함하는 줄만 인쇄하고 싶습니다 ora.orange

ora,orange,apple
orange,apple,ora,banana

답변1

싱글로에그레프:

egrep 'ora\b.*orange|orange.*ora\b' file

산출:

ora,orange,apple
orange,apple,ora,banana

아니면 싱글로sed표현하다:

sed -n '/orange/{/ora\b/p}' file
ora,orange,apple
orange,apple,ora,banana

두 가지 방법 모두 \b(단어 경계)가 사용됩니다.

답변2

전체 단어를 얻으려면 Grep을 사용하세요.

$ grep -w orange foo.csv | grep -w ora
ora,orange,apple
orange,apple,ora,banana

-w이는 일치하는 텍스트가 단어가 아닌 문자(단어 문자는 문자, 숫자 및 밑줄임)로 둘러싸여야 함을 의미합니다.

관련 정보