GNU/Linux >> Belajar Linux >  >> Linux

Tambahkan Kolom ke akhir file CSV menggunakan 'awk' dalam skrip BASH

Anda dapat menambahkan koma pada OFS (Pemisah Bidang Keluaran):

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

Keluaran:

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

EDIT untuk menjawab komentar SirOracle :

Dari awk halaman manual:

       -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.

Jadi tetapkan tanggal Anda ke variabel shell dan gunakan di dalam awk :

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

Saya akan melakukan:

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

Ini mengkode keras nilainya, tetapi begitu juga kode Anda.

Atau Anda dapat menggunakan sed :

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

Linux
  1. Bisakah Skrip Bash Dihubungkan ke File?

  2. Menggunakan Perintah Nama Dasar Linux di Skrip Bash

  3. temukan dan salin file menggunakan Bash

  1. Skrip Bash:juru bahasa yang buruk

  2. Bash:tambahkan string ke akhir file tanpa jeda baris

  3. menggunakan awk dengan kondisi nilai kolom

  1. Bagaimana cara menambahkan baris baru ke akhir file?

  2. Tambahkan skrip bash ke jalur

  3. Bagaimana cara menambahkan pekerjaan crontab ke crontab menggunakan skrip bash?