0

給与の範囲を示すレポートが欲しいです。以下のコードを試してみましたが、最初に範囲を検索せずにテキスト ファイル内のすべてのデータをカウントし続けます。改善点を教えてください。

TXT

3,Frank,CFO,91111453,Salaried,2333
1,Mary,CEO,93424222,Salaried,1111
5,John,Sales user,9321312,Commission,9999
7,Chris,Admin,98888753,Hourly,122

結果 [出力として欲しいもの]

Range       total number
1-1000      1
1001-2000   2

コード:

  echo "range       Total"
   awk '{t==$6}END{ if (t < 1001) count++ } END { print "$0 - 999\t\t"count }' $file
   awk '{t==$6}END{ if (1001<$6<2000) count++ } END { print "$1000 - 2999\t\t"count }' $file
4

3 に答える 3

1

このawkプログラムを試してください

BEGIN {
    FS=","
    OFS="\t"
    print "Range    ", "total number"
}
{
    ranges[int($6 / 1000)*1000]++
}
END {
    for (r in ranges)
        print r "-" (r+999) ":", ranges[r]
}
于 2013-11-07T13:10:16.067 に答える