Text-Processing

將值添加到 csv 文件的最後一行中的數字

  • January 8, 2018

我有一個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

引用自:https://unix.stackexchange.com/questions/415554