GNU/Linux >> Linux の 問題 >  >> Linux

Unix ソートで複数のキーをソートする

-k オプションが必要です。

-k 1.4,1.5n -k 1.14,1.15n

最初のフィールド (固定幅のすべての 1 つのフィールド) で文字位置 4 ~ 5 を使用し、最初のキーとして数値で並べ替えます。

2 番目のキーは、最初のフィールドの文字 14 ~ 15 です。

(編集)

例 (手元にあるのは DOS/cygwin だけです):

dir | \cygwin\bin\sort.exe -k 1.4,1.5n -k 1.40,1.60r

データ:

12/10/2008  01:10 PM         1,564,990 outfile.txt

ディレクトリ リストを月番号 (位置 4 ~ 5) で数値順に並べ替え、次にファイル名 (位置 40 ~ 60) で逆順に並べ替えます。タブがないので、並べ替えるのはすべてフィールド 1 です。


ただし、注意してください:

ファイルを主にフィールド 3 で並べ替え、次にフィールド 2 で並べ替える場合は、次のようにします。

sort -k 3,3 -k 2,2 < inputfile

これではない: sort -k 3 -k 2 < inputfile これは、フィールド 3 の先頭から行末までの文字列でファイルを並べ替えます (一意である可能性があります)。

-k, --key=POS1[,POS2]     start a key at POS1 (origin 1), end it at POS2
                          (default end of line)

Linux
  1. タブ区切りファイルのソート

  2. 行の最後のフィールドでのソート

  3. unixコマンドウォッチで色付け?

  1. 複数のexecStartを持つSystemd

  2. 複数行が連続するテキストファイルを並べ替える

  3. find コマンドのデフォルトのソート順

  1. systemctlを使用して複数のサービスインスタンスを管理する

  2. Linuxでの並べ替えコマンドと例

  3. Screenkeyを使用したLinuxでのScreencastPressedKeys