Não consigo imprimir linhas em branco ao ler valores de um arquivo de texto usando o awk em um script bash

3

awk está se comportando muito estranhamente no meu script. Eu estou tentando ler valores de um arquivo de texto (veja file.txt abaixo).

awk está ignorando espaços em branco no meu script, mas quando eu testo a instrução awk sozinha (em um script de teste para bugging) ela fornece a saída correta.

Aqui está o file.txt :

cain
jon
chris

johny
anthony

jose

Aqui está minha declaração awk : awk '{print $1}' file.txt

Esta é a saída quando a instrução awk está no meu script:

cain
jon
chris   
johny
anthony    
jose

Esta é a saída quando a instrução awk é isolada no meu script de teste:

cain
jon
chris

johny
anthony

jose

Eu tentei usar \n como um delimitador, mas obtive o mesmo resultado.

Por que o awk está se comportando de maneira diferente no meu script e quando está isolado?

Deixe-me saber se mais explicações são necessárias.

    
por Alias 03.07.2014 / 20:41

1 resposta

4

Eu acho que pode ser um bug no seu script, não awk em si.

A situação em que awk se comporta assim é quando a nova linha dupla é definida como RS variable:

awk '{print $1}' RS='\n|\n\n' file

Você deve verificar se o seu script alterou o valor de RS .

    
por 03.07.2014 / 21:47

Tags