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.
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 é;
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.
Você também pode usar o coreutils:
<foo.txt cut -d';' -f1 | paste -sd';'
Tags awk shell-script