繁体   English   中英

如何使用多个字段分隔符或多个 awk 来处理列

[英]How can I use multiple field separators or multiple awk to process columns

我有一个制表符分隔的文件,如下所示

John  1,0   3,2   5,6
Mike  3,2    4,5   0,0
James 3,0    5,3   4,5

我想添加 3 个字段的所有第一个元素并添加 3 个字段的第二个元素输出以下

John 9,8
Mike 9,7
James 12,8 

awk 中是否有可以使用多个字段分隔符的解决方案?

您可以在awk使用多个分隔符:

awk -F '[\t,]+' -v OFS='\t' '{print $1, ($2+$4+$6) "," ($3+$5+$7)}' file

John    9,8
Mike    7,7
James   12,8

我不知道awk但这是一个(无聊的) bash解决方案:

while read -r name f1 f2 f3; do
    s1=$((${f1%,*}+${f2%,*}+${f3%,*}))
    s2=$((${f1#*,}+${f2#*,}+${f3#*,}))
    echo "$name $s1,$s2"
done < input.txt
$ awk -F'[\t,]' '{delete s; for (i=2;i<=NF;i++) s[i%2]+=$i; print $1 "\t" s[0] "," s[1]}' file
John    9,8
Mike    7,7
James   12,8

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM