Separador de linhas após usar AWK

Separador de linhas após usar AWK
awk -F ';' '{print $1}' FileName

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

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

0
1
2

Eu tenho que percorrer cada registro e especificar a iteração, qual é o 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 é ;

Responder1

para evitar o ponto e vírgula final

 awk -F\; 'NR>1 { printf ";" ;} {printf "%s",$1;} END {printf "\n"} '
  • printfnão imprima avanço de linha
  • NR>1imprimir apenas após a primeira linha
  • ENDimprima após a última linha.

Responder2

awkgera o valor de ORS(separador de registro de saída) no final de cada printinstrução. É 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 END {printf "\n"}para obter uma nova linha no final da saída.

Responder3

Você também pode usar coreutils:

<foo.txt cut -d';' -f1 | paste -sd';'

informação relacionada