Fabián, miembro de este gran equipo de trabajo, nos hizo el favor de escribir este artículo porque conoce perfectamente el tema.
Solución:
Puede agregar una coma a OFS
(Separador de campo de salida):
awk -F"," 'BEGIN OFS = "," $6="2012-02-29 16:13:00"; print' input.csv > output.csv
Producción:
2012-02-29,01:00:00,Manhatten,New York,234,2012-02-29 16:13:00
2012-02-29,01:00:00,Manhatten,New York,843,2012-02-29 16:13:00
2012-02-29,01:00:00,Manhatten,New York,472,2012-02-29 16:13:00
2012-02-29,01:00:00,Manhatten,New York,516,2012-02-29 16:13:00
EDITAR para responder al comentario de SirOracle
:
De awk
página man:
-v var=val
--assign var=val
Assign the value val to the variable var, before execution of the program begins. Such
variable values are available to the BEGIN block of an AWK program.
Así que asigna tu fecha a una variable de shell y úsala dentro awk
:
mydate=$(date)
awk -v d="$mydate" -F"," 'BEGIN OFS = "," $6=d; print' input.csv > output.csv
Lo haría:
awk ' printf("%s,2012-02-29 16:13:00n", $0); ' input.csv > output.csv
Esto codifica el valor, pero también lo hace su código.
O puedes usar sed
:
sed 's/$/,2012-02-29 16:13:00/' input.csv > output.csv
Puede configurar el OFS (separador de campo de salida):
awk -F"," 'BEGIN OFS = "," ; $6="2012-02-29 16:13:00" OFS $6; print' input.csv >output.csv
que me da:
2012-02-29,01:00:00,Manhatten,New York,234,2012-02-29 16:13:00,
2012-02-29,01:00:00,Manhatten,New York,843,2012-02-29 16:13:00,
2012-02-29,01:00:00,Manhatten,New York,472,2012-02-29 16:13:00,
2012-02-29,01:00:00,Manhatten,New York,516,2012-02-29 16:13:00,
Nos puedes defender nuestra faena ejecutando un comentario y puntuándolo te damos las gracias.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)