GNU/Linux >> Linux Esercitazione >  >> Linux

Aggiungi colonna alla fine del file CSV utilizzando 'awk' nello script BASH

Puoi aggiungere una virgola a OFS (Separatore campo di output):

awk -F"," 'BEGIN { OFS = "," } {$6="2012-02-29 16:13:00"; print}' input.csv > output.csv

Uscita:

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

MODIFICA per rispondere al commento di SirOracle :

Da awk pagina 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.

Quindi assegna la tua data a una variabile di shell e usala all'interno di awk :

mydate=$(date)
awk -v d="$mydate" -F"," 'BEGIN { OFS = "," } {$6=d; print}' input.csv > output.csv

Farei:

awk '{ printf("%s,2012-02-29 16:13:00\n", $0); }' input.csv > output.csv

Questo codifica il valore, ma anche il tuo codice.

Oppure puoi usare sed :

sed 's/$/,2012-02-29 16:13:00/' input.csv > output.csv

Linux
  1. Come chiamare una funzione Bash nello script Bash all'interno di Awk?

  2. Utilizzo del comando Linux Basename negli script Bash

  3. trova e copia il file usando Bash

  4. Come evidenziare gli script Bash in Vim?

  5. Come sostituire gli spazi nei nomi dei file usando uno script bash

35 Esempi di script Bash

Uno script Bash può essere agganciato a un file?

Come aggiungere una nuova riga alla fine di un file?

Script Bash:controlla se un file è un file di testo?

Trasferisci i file usando lftp nello script bash

Come aggiungere un lavoro crontab a crontab usando uno script bash?