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番目の列($ 4)と6番目の列($ 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

おすすめ記事