다음과 같은 파일이 있습니다
'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'
조건은
- ABC라는 단어가 포함되어 있습니다.
- 패턴 일치 "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'