列に基づいてソート

列に基づいてソート
10 awhdk;
14 hjoeow;
2  kdkld;
4  jkjdksl

最初の列(数など)で並べ替えるにはどうすればよいですか?

私は次のような出力を得たいと思います。

14 hjoeow;10 awhdk;4 jkjdksl;2 kdkld

最初の列の順序に従って2つの列を印刷する必要があります。

ベストアンサー1

これを使用して、-k入力行でソートキーが開始および終了する位置を指定できます。

この-nオプションを使用するか、nソートキー仕様に追加して、デフォルトの語彙ソートの代わりに数値ソートをトリガーできます。そして、-rソートを逆にするだけです。

ここで数値ソートの場合、ソートキーをsortコマンドに制限する必要はありません。これにより:

sort -rn file

行全体を数値として扱います。たとえば、線は数字14 hjoeow;として理解されます。14

次のことができます。

sort -bk 1,1rn file

最初のフィールドだけがソートされますが、違いはありません。

接続ラインコマンドにはオプションがpaste使用されます-s。指定された区切り文字を使用できます-d\0 区切り記号の特殊値です。中間条件なしでサインアップ。したがって、予想される出力を取得するには、次の手順を実行します。

sort -rn file | paste -sd '\0' -

POSIXでは、pasteファイル名を渡す必要があります。-別の特別な値、つまり標準入力paste一部の実装では省略できます。

おすすめ記事