gpt4 book ai didi

shell - 比较同一文件中的列以在同一文件中再插入一列

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

我需要比较特定的列(第 3 列和第 6 列),并且在定义了两个数字的情况下,将第 3 列与第 6 列的比率添加为额外的第 7 列。

我的文件

Col1 col2 col3 col4 col5 col6 
a s318 14 - - -
b s319 25 b t568 15
c s320 8 c t569 12
- - - d t570 20
f s322 42 f t571 5

预期输出
Col1 col2 col3 col4 col5 col6 ratio
a s318 14 - - - 0
b s319 25 b t568 15 1.67
c s320 8 c t569 12 0.67
- - - d t570 20 0
f s322 42 f t571 5 8.4

我使用了 awk脚本来获取结果,但它显示 awk: (FILENAME=file.txt FNR=4) fatal: division by zero attempted .
awk 'NR==1{$7="ratio"}NR>1{if($3!=$6)print $7=($3)/($6)}{print}' file.txt

我需要帮助;你能解决这个问题吗?

最佳答案

使用三元运算符检查第 6 列的值是否为正:

$ awk 'NR==1{$7="ratio"}NR>1{ $7=$6>0?$3/$6:0}{print}' OFS='\t' file 
Col1 col2 col3 col4 col5 col6 ratio
a s318 14 - - - 0
b s319 25 b t568 15 1.66667
c s320 8 c t569 12 0.666667
- - - d t570 20 0
f s322 42 f t571 5 8.4

关于shell - 比较同一文件中的列以在同一文件中再插入一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18651171/

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