Vous pouvez ajouter une virgule à OFS
(Séparateur de champ de sortie) :
awk -F"," 'BEGIN { OFS = "," } {$6="2012-02-29 16:13:00"; print}' input.csv > output.csv
Sortie :
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
MODIFIER pour répondre au commentaire de SirOracle
:
À partir de awk
page de manuel :
-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.
Alors assignez votre date à une variable shell et utilisez-la dans awk
:
mydate=$(date)
awk -v d="$mydate" -F"," 'BEGIN { OFS = "," } {$6=d; print}' input.csv > output.csv
Je ferais :
awk '{ printf("%s,2012-02-29 16:13:00\n", $0); }' input.csv > output.csv
Cela code la valeur en dur, mais votre code aussi.
Ou vous pouvez utiliser sed
:
sed 's/$/,2012-02-29 16:13:00/' input.csv > output.csv