我有一个非常大的文件格式:
1 10802
1 10876
1 10952
1 11813
我想用这种格式写它:
1 10802 10876 74
第一列,第二列,第二列的第二个元素是第三列的第一个元素,$ 4 = $ 3- $ 2,即第四列应该是第3列和第2列的减法。
答案 0 :(得分:2)
这可以做到:
$ awk 'NR==1{p=$2; next} {print $1, p, $2, $2-p; p=$2}' file
1 10802 10876 74
1 10876 10952 76
1 10952 11813 861
NR==1{p=$2; next}
当我们在第一行时,只需将第二列存储在变量p
中并跳过行。{print $1, p, $2, $2-p; p=$2}
,继续打印值:1st col,p
(存储值),2nd col,差异。然后,将第二列的值存储在变量p
中,以用于下一个循环。