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
一部の実装では省略できます。