負の並べ替えを使用して2番目の列を並べ替え、3番目の列を並べ替えます。

負の並べ替えを使用して2番目の列を並べ替え、3番目の列を並べ替えます。

次の日付があります。

random check/1 -0.02
random check/1 -0.05
random tell/1 -0.01
random tell/2 -0.02
random checking -0.00

2番目の列を並べ替え、3番目の列を並べ替えてみました。私はそれを使用しましたsort -n -k2,2 -k3,3 file。しかし、それは私が探している結果を提供しません。

出力は次のようになります。

random check/1 -0.05
random check/1 -0.02
random checking -0.00
random tell/1 -0.01
random tell/2 -0.02

それからそれをユニークにしたいと思います。したがって、最終出力はリンクでなければなりません。

random check/1 -0.05
random checking -0.00
random tell/1 -0.01
random tell/2 -0.02

デフォルトでは、2番目の列、3番目の列、2番目の列の順に並べ替えられるため、最悪の数だけが表示されます。

答え1

sort -nk3,3 file | sort -uk2,2

答え2

sort -k2,2 -k3,3n | awk '$2!=s;{s=$2}'

2番目のフィールドのデータを並べ替え、3番目のフィールドを数値順に並べ替えます。 awkを使用して2番目のフィールドの最初の項目を印刷します(2番目のフィールドが保存された値と異なる場合はその行を印刷し、2番目のフィールドを保存します)。

関連情報