GNU/Linux >> Linux の 問題 >  >> Linux

BASHスクリプトで「awk」を使用してCSVファイルの最後に列を追加します

OFS にカンマを追加できます (出力フィールドセパレーター):

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

出力:

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

編集 SirOracle のコメントに答える :

awk から マニュアルページ:

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

したがって、日付をシェル変数に割り当て、 awk 内で使用します :

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

私なら:

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

これは値をハード コードしますが、コードも同様です。

または sed を使用できます :

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

Linux
  1. Awk内のBashスクリプトでBash関数を呼び出す方法は?

  2. BashスクリプトでのLinuxBasenameコマンドの使用

  3. Bash スクリプト:不適切なインタープリター

  1. Bash:改行なしでファイルの末尾に文字列を追加します

  2. ファイルを bash シェル スクリプトに含める方法

  3. 列値条件で awk を使用する

  1. Bashスクリプトをファイルに接続できますか?

  2. ファイルの最後に改行を追加するにはどうすればよいですか?

  3. bashスクリプトでlftpを使用してファイルを転送する