작은따옴표, 파이프 및 후행 /가 포함된 패턴을 사용하여 줄을 어떻게 그립합니까?

작은따옴표, 파이프 및 후행 /가 포함된 패턴을 사용하여 줄을 어떻게 그립합니까?

다음과 같은 파일이 있습니다

'ABC'|filler|'Y'|'john/1'|'text'
'ABC'|filler|'Y'|'john1'|'te/xt'
'ABC'|filler|'N'|'mary/2'|'text'
'DEF'|filler|'N'|'jane/3'|'text'

내 grep이 다음 결과를 반환하기를 원합니다.

'ABC'|filler|'Y'|john/1|'text'
'ABC'|filler|'N'|mary/2|'text'

조건은

  1. ABC라는 단어가 포함되어 있습니다.
  2. 패턴 일치 "Y" 또는 "N", 파이프 다음에는 슬래시가 와야 합니다.

나는 현재 붙어있다

wordY="'Y'|"

단어 N = "'N'|"

grep ABC test.txt | grep "$wordY|$wordN"

어느 것이 돌아오나요?

'ABC'|filler|'Y'|'john/1'|'text'
'ABC'|filler|'Y'|'john1'|'te/xt'    //i do not want this
'ABC'|filler|'N'|'mary/2'|'text'

네 번째 열에 슬래시를 사용하여 결과 값을 반환하는 명령을 어떻게 추가합니까?

답변1

사용grep

$ grep -E "^'ABC'\|[^|]*\|'(Y|N)'\|'[[:alpha:]]+/" input_file
'ABC'|filler|'Y'|'john/1'|'text'
'ABC'|filler|'N'|'mary/2'|'text'

관련 정보