열에 특정 문자열이 포함된 경우 하나의 행만 출력하는 방법 [닫기]

열에 특정 문자열이 포함된 경우 하나의 행만 출력하는 방법 [닫기]

4개의 열이 있고 세 번째 열에는 AG라는 문자가 포함되어 있습니다. 열이 비어 있지 않거나 AG가 포함된 경우에만 행을 출력하고 싶습니다. 이것이 나의 현재 코드입니다. 압축 파일에서 읽습니다.

bzcat $file | cut -d, -f3,4,20,21 |grep -E '[A-G]'|head -100 

답변1

귀하의 질문은 약간 혼란스럽습니다. 그러나 awk귀하가 찾고 있는 것이 무엇인지 이해한다면 다음을 시도해 보십시오.

awk 'BEGIN{FS=","}$3~/[A-G]+/{print}'
  1. FS=필드 구분 기호를 정의합니다. 열을 구분하는 것은 무엇입니까?

  2. $3세 번째 필드입니다. 기둥.

  3. ~/[A-G]+/awk문자 AG.와만 일치하는 정규식을 알려줍니다 .

awk라인 지향 스트림 편집기입니다. 예를 들어 입력 스트림을 통과합니다. 그리고 bzcat $file |각 줄의 세 번째 "필드"를 검사하여 일치하는 정규식이 있는지 확인합니다. 그렇다면 중괄호 안의 명령 목록이 실행됩니다. 이 경우 기본적으로 전체 내용을 인쇄하는 간단한 print 문입니다. 선.

awk훌륭하고 매우 강력하며 기능이 풍부한 프로그램이므로 최소한 기본 사항은 배울 가치가 있습니다. man자세한 내용은 해당 페이지를 확인하세요 .

관련 정보