Como escrever um script nawk que imprime tudo, exceto as linhas em branco e exibe o número total de linhas em branco?

0

Eu tentei algumas coisas diferentes, mas não consigo fazê-lo funcionar. Principalmente, gostaria apenas de saber como excluir as linhas em branco.

comando tentado: nawk '{print $0}' filename | grep -v " "

    
por NOOB 26.11.2015 / 21:11

1 resposta

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

Para todas as linhas sem campos ( !NF ) (linhas vazias, neste caso), incremente o count e siga em frente. Caso contrário, imprima a linha (a ação padrão para qualquer valor verdadeiro, incluindo 1 ). No final da entrada, imprima o count . Inicializamos count com 0 para que, se cada linha não estiver vazia, count ainda tenha um valor.

Poderíamos usar /^$/ em vez de !NF - o último pode falhar em linhas contendo apenas espaços em branco.

    
por 26.11.2015 / 21:19

Tags