¿Cómo selecciono la primera columna de la cadena separada por TAB?
# echo "LOAD_SETTLED LOAD_INIT 2011-01-13 03:50:01" | awk -F'\t' '{print $1}'
Lo anterior devolverá la línea completa y no solo "LOAD_SETTLED" como se esperaba.
Actualizar:
Necesito cambiar la tercera columna en los valores separados por tabulaciones. Lo siguiente no funciona.
echo $line | awk 'BEGIN { -v var="$mycol_new" FS = "[ \t]+" } ; { print $1 $2 var $4 $5 $6 $7 $8 $9 }' >> /pdump/temp.txt
Sin embargo, esto funciona como se esperaba si el separador es una coma en lugar de un tabulador.
echo $line | awk -v var="$mycol_new" -F'\t' '{print $1 "," $2 "," var "," $4 "," $5 "," $6 "," $7 "," $8 "," $9 "}' >> /pdump/temp.txt
awk 'BEGIN {FS="\t"}; {print $1,FS,$2,FS,$3}' myFile.txt
imprimir valores delimitados por tabulaciones de las tres primeras columnas.awk 'BEGIN {OFS="\t"}; {print $1,$2,$3}'
-v
configuración de variables. Es feo usarloBEGIN {FS="\t"}
dentro de un programa en línea , y es probable que se objete cualquier contribución de código abierto que intente hacer de esa manera. Solo haga eso si está escribiendo un archivo de programa . Además, se desaconseja usar en-F
lugar de-v FS=
porque este último deja claro que soloFS
se está configurando y noOFS
. La confusión sobre ese último punto es lo que causó esta publicación en primer lugar. Por eso es importante el "buen estilo".OFS
variable.