min_ex
以下のTSVファイル(と呼ばれる)を最初の列に基づいてアルファベット順に並べ替え、2番目の列に基づいて数字を並べ替えたいと思います。
A X, N 2.2
A, N 5.7
A, A 5.8
A, N 2.1
A, T 0.2
B G, M 2.3
B, L 0.1
B, I 0.2
B, M 9.3
B, C 9.9
私はこれをしようとしていますsort -k1,2 -n min_ex
。ただし、次のような結果が発生するため動作しません。
A, A 5.8
A, N 2.1
A, N 5.7
A, T 0.2
A X, N 2.2
B, C 9.9
B G, M 2.3
B, I 0.2
B, L 0.1
B, M 9.3
また、(実験を通して)区切り文字としてスペースがあると確信していますが、sort
区切り文字を設定するオプションは表示されません。
私はsed
純粋なAWKを使用するか、まったく使用しない(どちらも好む場合)ソリューションを望んでおり、できるだけPOSIX仕様を維持したいと思います。
答え1
sort -t$'\t' -k1,1 -k2,2n
効果があった、そうだったPOSIX互換いくつかを除いて$'\t'
。-t
フィールド区切り文字を指定します(デフォルトの空白を空白ではなく空白に変換する代わりに)、サフィックスはn
個々のフィールド定義に適用できます。