Separador de linhas após o uso do AWK

0
awk -F ';' '{print $1}' FileName

Estou usando este comando para imprimir a primeira coluna de um arquivo delimitado por ponto e vírgula.

Agora, eu tenho que percorrer a saída do comando acima. Se minha saída for

0
1
2

Eu tenho que percorrer cada registro e eu tenho que especificar a iteração que é meu delimitador de registro na minha saída

Existe uma maneira de imprimir a saída como abaixo

0;1;2

Para que eu possa iterar dizendo que o delimitador é;

    
por tradersjoe 26.04.2017 / 16:31

3 respostas

1

para evitar o ponto e vírgula trailling

 awk -F\; 'NR>1 { printf ";" ;} {printf "%s",$1;} END {printf "\n"} '
  • printf não imprime o feed de linha
  • NR>1 apenas imprime após a primeira linha
  • END imprime após a última linha.
por 26.04.2017 / 16:41
2

awk gera o valor de ORS (separador de registro de saída) no final de cada instrução print . É uma nova linha por padrão, mas você pode alterá-la:

$ cat foo.txt
0;3;6
1;4;7
2;5;8
$ awk -vORS=';' -F';' '{print $1} END {printf "\n"}'  foo.txt
0;1;2;

Eu adicionei o END {printf "\n"} para obter uma nova linha no final da saída.

    
por 26.04.2017 / 16:37
0

Você também pode usar o coreutils:

<foo.txt cut -d';' -f1 | paste -sd';'
    
por 26.04.2017 / 17:02