awk 및 grep 이후 전체 줄 인쇄

awk 및 grep 이후 전체 줄 인쇄

파일의 세 번째 열에서 여러 패턴을 검색한 다음 전체 행을 인쇄해야 합니다.

아래에서 이것을 사용하고 있는데 일치하는 전체 줄을 인쇄하려면 어떻게 해야 합니까?

awk '{print $3}' file | egrep -w "S|M|D"

답변1

awk귀하의 요구 사항 에는 가 아닌 가 필요하다고 생각합니다 grep. 이 문자 중 하나와 일치하는 세 번째 열로 전체 행을 인쇄하려면 다음을 수행해야 합니다.

awk '$3 ~ /^(S|M|D)$/' file

답변2

S공백으로 구분된 세 번째 필드가 정확히 , M또는 인 행을 추출하려면 D다음 중 하나를 사용하세요.

awk '$3 ~ /^[SMD]$/' file

또는 정규식 일치 대신 문자열 일치를 사용하세요.

awk '$3 == "S" || $3 == "M" || $3 == "D"' file

해당 블록이 없는 조건은 해당 블록이 바로 그 블록인 것처럼 동작합니다 { print }.

답변3

awk '$3 ~ /^S/||/^M/||/^D/{print $0}' filename

관련 정보