GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Fügen Sie mithilfe von „awk“ im BASH-Skript eine Spalte am Ende der CSV-Datei hinzu

Sie können ein Komma zu OFS hinzufügen (Ausgabefeld-Trennzeichen):

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

Ausgabe:

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

BEARBEITEN um den Kommentar von SirOracle zu beantworten :

Ab awk Manpage:

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

Weisen Sie also Ihr Datum einer Shell-Variablen zu und verwenden Sie es in awk :

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

Ich würde Folgendes tun:

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

Dadurch wird der Wert fest codiert, aber auch Ihr Code.

Oder Sie können sed verwenden :

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

Linux
  1. Wie füge ich am Ende einer Datei einen Zeilenumbruch hinzu?

  2. Bash-Skript:Prüfen, ob eine Datei eine Textdatei ist?

  3. Wie rufe ich eine Bash-Funktion in einem Bash-Skript in Awk auf?

  4. Verwenden des Linux-Basisnamenbefehls in Bash-Skripten

  5. Bash-Skript:schlechter Interpreter

35 Bash-Skriptbeispiele

Suchen und kopieren Sie die Datei mit Bash

Wie kann man Bash-Skripte in Vim hervorheben?

So ersetzen Sie Leerzeichen in Dateinamen mit einem Bash-Skript

Wie parse ich eine CSV-Datei in Bash?

Automatisierung der Telnet-Sitzung mit Bash-Skripten