2つの列の違いに基づいてファイルを並べ替える

2つの列の違いに基づいてファイルを並べ替える

Artists.datというリストがあります。アーティストが死亡した年齢に基づいてアーティストをソートしたいと思います。次に、それぞれについて以下を印刷します。

「名前」と「城」は「$4-$3」年を生きていました。

たとえば、Dorotha Tanningは102歳まで住んでいました。 ($4-$3でソート)

Dorothea,  Tanning, 1910, 2012
Frida,     Kahlo, 1907, 1954
Gertrude,  Abercrombie, 1909, 1977
Leonora,   Carrington, 1917, 2011
Max,       Ernst, 1891, 1976
Remedios,  Varo, 1908, 1963
Rene,      Magritte, 1898, 1967
Salvador,  Dali, 1904, 1989
Yves,      Tanguy, 1900, 1955

ベストアンサー1

最新バージョンのGNUがある場合awk

gawk -F', *' '
  {a[$1" "$2]=$4-$3}
  END {
    PROCINFO["sorted_in"]="@val_num_desc"
    for (i in a) print i, "lived for", a[i], "years"
  }
' Artists.dat

おすすめ記事