GNU/Linux >> Znalost Linux >  >> Linux

Přidejte sloupec na konec souboru CSV pomocí 'awk' ve skriptu BASH

Za OFS můžete přidat čárku (Oddělovač výstupních polí):

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

Výstup:

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

UPRAVIT odpovědět na komentář SirOracle :

Od awk manuálová stránka:

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

Přiřaďte tedy své datum proměnné shellu a použijte ji v awk :

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

Udělal bych:

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

Toto pevně zakóduje hodnotu, ale také váš kód.

Nebo můžete použít sed :

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

Linux
  1. najít a zkopírovat soubor pomocí Bash

  2. Jak zvýraznit Bash skripty ve Vimu?

  3. Jak nahradit mezery v názvech souborů pomocí bash skriptu

  1. automatizace relace telnet pomocí bash skriptů

  2. pomocí awk s podmínkami hodnoty sloupce

  3. Jak přidat úlohu crontab do crontab pomocí bash skriptu?

  1. Může být Bash skript připojen k souboru?

  2. Jak přidat nový řádek na konec souboru?

  3. Bash Script:Zkontrolujte, zda je soubor textovým souborem?