빈 줄을 제외한 모든 항목을 인쇄하고 총 빈 줄 수를 표시하는 nawk 스크립트를 어떻게 작성할 수 있습니까?

빈 줄을 제외한 모든 항목을 인쇄하고 총 빈 줄 수를 표시하는 nawk 스크립트를 어떻게 작성할 수 있습니까?

나는 몇 가지 다른 것을 시도했지만 제대로 작동하지 않습니다. 주로 빈 줄을 제외하는 방법을 알고 싶습니다.

시도한 명령:nawk '{print $0}' filename | grep -v " "

답변1

nawk -v count=0 '!NF {count++; next}; 1; END {print count}'

필드가 없는 모든 행( !NF)(이 경우 빈 행)에 대해 증가 count하고 계속합니다. 그렇지 않은 경우 행을 인쇄합니다(참 값에 대한 기본 동작 포함 1). 입력이 끝나면 print 를 실행하여 각 줄이 비어 있지 않아도 여전히 값을 갖도록 count초기화합니다 .count0count

공백만 포함된 줄에서는 실패할 수 있는 - /^$/대신 -를 사용할 수 있습니다 .!NF

관련 정보