![열에 특정 문자열이 포함된 경우 하나의 행만 출력하는 방법 [닫기]](https://linux55.com/image/128671/%EC%97%B4%EC%97%90%20%ED%8A%B9%EC%A0%95%20%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%B4%20%ED%8F%AC%ED%95%A8%EB%90%9C%20%EA%B2%BD%EC%9A%B0%20%ED%95%98%EB%82%98%EC%9D%98%20%ED%96%89%EB%A7%8C%20%EC%B6%9C%EB%A0%A5%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
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}'
FS=
필드 구분 기호를 정의합니다. 열을 구분하는 것은 무엇입니까?$3
세 번째 필드입니다. 기둥.~/[A-G]+/
awk
문자 AG.와만 일치하는 정규식을 알려줍니다 .
awk
라인 지향 스트림 편집기입니다. 예를 들어 입력 스트림을 통과합니다. 그리고 bzcat $file |
각 줄의 세 번째 "필드"를 검사하여 일치하는 정규식이 있는지 확인합니다. 그렇다면 중괄호 안의 명령 목록이 실행됩니다. 이 경우 기본적으로 전체 내용을 인쇄하는 간단한 print 문입니다. 선.
awk
훌륭하고 매우 강력하며 기능이 풍부한 프로그램이므로 최소한 기본 사항은 배울 가치가 있습니다. man
자세한 내용은 해당 페이지를 확인하세요 .