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