Necessidade de obter saída Awk em sequência específica

2

Dados no arquivo:

1234567-5678907
3456789-1234563
3456789-1234567
.
.
.
.
n

Agora quero a saída no formato abaixo:

1234567-5678907,3456789-1234563,3456789-1234563....n

Eu usei o comando abaixo, mas estou recebendo uma vírgula extra ao iniciar:

awk -F"-" ' {printf ",%s-%s",$1,$1} END{print""}'

Por favor, compartilhe o comando que pode ser usado em um script de shell.

    
por montu 18.04.2015 / 02:31

2 respostas

3

Usando o separador de registros de saída do Awk, ORS :

awk 'BEGIN{ORS=",";}1' infile
    
por 18.04.2015 / 02:42
3

Já existe uma solução baseada em paste no comentário acima. Mas se você preferir awk , aqui está uma awk -solution:

awk 'BEGIN{RS="";OFS=","};$1=$1'

Ele não cria uma vírgula espúria no final e termina adequadamente a saída por uma nova linha.

    
por 18.04.2015 / 03:45