gawk: Como eu posso imprimir a saída genrated pelo comando gawk em várias linhas no terminal em uma única linha no arquivo

2

Estou usando o comando gawk para imprimir o conteúdo da coluna em um arquivo como:

gawk '{print $2205764, $2205763}' /home/mohasin/fil1.txt

Gera saída no terminal com nova linha:

a a
b b
c c
d d
. .
. .

Eu quero essa saída em uma única linha no arquivo, como posso fazer isso?

a a b b c c d d......
    
por MOHASIN 27.11.2015 / 05:39

2 respostas

1

Defina o separador de registro de saída ( ORS ) como um espaço. Por padrão, é uma nova linha.

Você pode fazer isso no bloco BEGIN :

awk 'BEGIN { ORS = " " } { print }' inputfile

Ou, de forma equivalente, você pode fazer isso como um argumento de linha de comando para awk :

awk -v ORS=" " '{ print }' inputfile

Qualquer um desses itens unirá todas as linhas de inputfile em uma única linha. (Haverá um espaço à direita).

    
por 03.01.2016 / 08:47
1

Use o comando tr para transformar suas novas linhas em espaços.

gawk '{print $2205764, $2205763}' /home/mohasin/fil1.txt | tr '\n' ' ' > file.txt
    
por 03.01.2016 / 11:25