私のファイルにはfruit
次の内容が含まれています。
Apples, 12
Pears, 50
Cheries, 7
Strawberries, 36
Oranges, 2
ファイルの数値データをソートしたいです。
for(i=1;i<=NF;i++)j+=$i;printf "Fruit %d%s, %d\n",NR,OFS,$1,j | sort -k 2 > "numbers"; j=0"
awkスクリプトを実行するには、次のコマンドを実行します。
awk -f numbers fruit
デジタルファイルの内容は果物と同じですが、最初と2番目のフィールドがデジタルファイルにコピーされます。
ベストアンサー1
GNU awkは、配列のナビゲーション方法を制御するための賢い方法を提供します。配列巡回制御そして制御スキャン
gawk -F', ' '
{fruit[$1] = $2}
END {
OFS = FS
printf "\nordered by fruit name\n"
PROCINFO["sorted_in"] = "@ind_str_asc"
for (f in fruit) print f, fruit[f]
printf "\nordered by number\n"
PROCINFO["sorted_in"] = "@val_num_desc"
for (f in fruit) print f, fruit[f]
}
' fruit
出力
ordered by fruit name
Apples, 12
Cheries, 7
Oranges, 2
Pears, 50
Strawberries, 36
ordered by number
Pears, 50
Strawberries, 36
Apples, 12
Cheries, 7
Oranges, 2