gpt4 book ai didi

awk - 如何使用 awk 计算总和并替换文件中的列

转载 作者:行者123 更新时间:2023-12-04 02:30:30 25 4
gpt4 key购买 nike

我是网站和编程界的新手,希望您有时间帮助我。我的问题如下:我有一个包含多个列的文件。在第二列中有值。我试图计算给定数字的每个值的总和,并将第二列替换为包含总和结果的新列。这是我的输入示例:

A B C
x 1 t
y 2 u
z 3 v

我想将 B 列中的值相加为 5 并获得如下所示的输出:

A B C
x 6 t
y 7 u
z 8 v

我尝试失败的代码是

zcat my_file.vcf.gz| tail -n +49 | awk 'BEGIN{FS=OFS="\t"} {print $0, $2+5}'>my.output.vcf

提前致谢

最佳答案

我们可以避免使用 tail,因为打印第 49 行的行可以在 awk 本身中处理。您还需要在第二个字段中添加值,然后您可以通过 print 命令打印整行。

重要的一点,根据 OP 的示例,如果第二个字段有字母表,则无需在其中添加 5,因此请在此处处理该情况。

zcat my_file.vcf.gz | 
awk '
BEGIN{ FS=OFS="\t" }
FNR>=49{
$2=($2~/[a-zA-Z]/?$2:$2+5)
print
}
' > my.output.vcf

关于awk - 如何使用 awk 计算总和并替换文件中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64479149/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com