将值添加到 csv 文件最后一行的数字

将值添加到 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

由于文件不断增长,因此最后一行没有固定的行号。

答案1

这是 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

相关内容