0

基本的な形式では、2012 年の大統領選挙の州投票結果を含むテキスト ファイルが与えられ、Unix で 1 行のシェル スクリプトを記述して、どの候補者が勝ったかを判断する必要があります。ファイルにはさまざまなフィールドがあり、そのうちの 1 つは CandidateName で、もう 1 つは TotalVotes です。ファイル内の各レコードは、州内の 1 つの選挙区からの結果であるため、指定された CandidateName には多くのレコードがあるため、CandidateName に従ってデータを並べ替え、最終的に TotalVotes を合計することができます。それぞれの一意の CandidateName (したがって、合計は一意の CandidateName で始まり、次の一意の CandidateName の前で終わります)。

4

2 に答える 2

1

awkおよびその連想配列でソートする必要はありません。便宜上、データ ファイル形式は次のようになります。

precinct1:candidate name1:732
precinct1:candidate2 name:1435
precinct2:candidate name1:9920
precinct2:candidate2 name:1238

:したがって、区切り文字としてフィールド 2 に基づいてフィールド 3 の合計を作成する必要があります。

awk -F: '{sum[$2] += $3} END { for (name in sum) { print name " = " sum[name] } }' data.file

の一部のバージョンは、awk内部で並べ替えることができます。他の人はできません。sort プログラムを使用して結果を処理します。

sort -t= -k2nb

(フィールド区切り記号は=記号です。並べ替えはフィールド 2 で行われます。これは数値フィールドで、先頭に空白がある可能性があります)。

于 2013-04-17T03:38:51.273 に答える