Text-Processing
將值添加到 csv 文件的最後一行中的數字
我有一個
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
由於文件不斷增長,因此最後一行沒有固定的行號。
這是awk解決方案:
awk -F, -v OFS=, 'l{print l}{l=$0}END{$1+=1.25;print}' file
這個想法是列印前一行而不是目前行。
-F,
並-v OFS=,
設置輸入和輸出欄位分隔符l{print l}``l
僅當變數不為零(數字)或空(字元串)時才列印變數——這會阻止列印第一行,因為l
尚未設置l=$0
將變數設置l
為整行END
最後我們在非常變化的第一個欄位列印最後一行輸出:
0.25,20171225,20:00 3,20171226,23:59 3.5,20171231,00:01 3,20180108,05:43