我有一个很大的CSV文件,其头部如下所示:
ccd_11_0 Gly_GCC_89 2
ccd_11_0 Gly_GCC_87 8
ccd_11_0 Gly_GCC_88 0
ccd_11_1 Gly_GCC_87 1
我想对第三列中的数字执行等式1 /(x + 1)。因此,输出应如下所示:
ccd_11_0 Gly_GCC_89 0.33
ccd_11_0 Gly_GCC_87 0.11
ccd_11_0 Gly_GCC_88 1
ccd_11_1 Gly_GCC_87 0.5
awk '{$3=1/($3+1)}1' yourfile
这是使用默认字段分隔符将行分成$ 1,$ 2和$ 3列。然后,它只是在进行数学运算以将第三列$3
设置为值1/($3+1)
。最后,它使用1
(简写)打印结果。