csv
次の形式のファイルがあります。
0.25,20171225,20:00
3,20171226,23:59
3.5,20171231,00:01
1.75,20180108,05:43
コマンドラインの最後の行の最初のフィールドに値を追加するにはどうすればよいですか?
したがって、ファイルを追加するには、1.25
次のように表示されます。
0.25,20171225,20:00
3,20171226,23:59
3.5,20171231,00:01
3,20180108,05:43
ファイルが増え続けるため、最後の行には固定行番号はありません。
ベストアンサー1
awkの解決策は次のとおりです。
awk -F, -v OFS=, 'l{print l}{l=$0}END{$1+=1.25;print}' file
アイデアは、現在の行の代わりに前の行を印刷することです。
-F,
-v OFS=,
入力および出力フィールドの区切り記号を設定します。l{print l}
l
0(数値)または空(文字列)でない場合にのみ変数を印刷します。これにより、最初の行がl
まだ設定されていないため印刷されません。l=$0
l
変数を完全な行に設定END
最後に変更された最初のフィールドの最後の行を印刷します。
出力:
0.25,20171225,20:00
3,20171226,23:59
3.5,20171231,00:01
3,20180108,05:43