awk 捕获缺失的列

awk 捕获缺失的列

我有一个如下所示的文件:

SOME,DESCRIPTIONS,OF,THE,COLUMNS
0,93,50127,0,49592,1,49592,1
100,195,107336,0,106491,2,107077,2
200,298,178492,3,170578,24,172045,13
...
2590,0

我正在尝试添加基于第四列 ($4) 和第六列 ($6) 的比率列。

我写过:

awk -F "," 'NR==1{$9=",ratio"}NR>1{if($4==0) $9 = "10000"; else $9 = ($6)/($4)}' $FILE

正如您所看到的,在最后一行,输出格式错误并且缺少列,因此运行该命令会导致错误division by zero

有什么方法可以跳过格式错误的行吗?

答案1

awk 'BEGIN  { FS=OFS="," }
NR==1       { $9="ratio" }
NR>1 && NF>3{ if($4==0) $9 =10000; else $9 =$6/$4 } 
{ print }' infile

相关内容