awk:各行を取得するためにファイルを繰り返す方法は?

awk:各行を取得するためにファイルを繰り返す方法は?

情報を含むファイルがあります。

Name   Rate   Hours



Clark  8.5    42
Sarah  18.5   19 
Joe    10     25
Paul   12     5

総給与を計算したい。スタッフ。

i <=ただし、ファイルの先頭のヘッダー(、、、)が何にリンクされているのかわからないため、ループを機能させることはできません。NameRateHours

これまで私はこれを持っています:

awk 'BEGIN{
    total = 0;
}

{
    rate = $2;
    hours = $3;
        for (i = 1; i<= NR; i++)
    {
            total = rate * hours;
    }
}

END {
    print "Total = $" total;
}' testfile.dat

ご協力ありがとうございます!

ベストアンサー1

代わりに、次のようなものがうまくいき、良い結果が得られます。

awk -v OFS="\t" 'NR==1{$4="total"}NR>1{$4=$2*$3}1' testfile.dat
#Output:
Name    Rate    Hours   total
Clark   8.5       42    357
Sarah   18.5      19    351.5
Joe     10        25    250
Paul    12         5    60

おすすめ記事