
awk -F ';' '{print $1}' FileName
Estoy usando este comando para imprimir la primera columna de un archivo delimitado por punto y coma.
Ahora, tengo que recorrer el resultado del comando anterior. Si mi salida es
0
1
2
Tengo que recorrer cada registro y tengo que especificar en la iteración cuál es mi delimitador de registro en mi salida.
¿Hay alguna manera de imprimir el resultado como se muestra a continuación?
0;1;2
Para poder iterar diciendo que el delimitador es;
Respuesta1
para evitar el punto y coma final
awk -F\; 'NR>1 { printf ";" ;} {printf "%s",$1;} END {printf "\n"} '
printf
no imprimir avance de líneaNR>1
imprimir solo después de la primera líneaEND
imprimir después de la última línea.
Respuesta2
awk
genera el valor de ORS
(separador de registros de salida) al final de cada print
declaración. Es una nueva línea por defecto, pero puedes cambiarla:
$ 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;
Agregué END {printf "\n"}
para obtener una nueva línea al final del resultado.
Respuesta3
También puedes usar coreutils:
<foo.txt cut -d';' -f1 | paste -sd';'