sort

[機能]

  データを並べ換えます

[形式]
sort [options] [field-specifier-list] [file-list]
	-b : ソート位置を決める際,フィールドの先頭の空白を無視します
	-f : 大文字と小文字を同一視します
	-m : ファイルのマージをします
	-n : フィールドの内容を数値と見做します
	-r : 逆順にソートします
	-tx : フィールド区切り記号として x が使用されます
	-u : 重複行を 1 度しか出力しません		
  [field-specifier-list]

  並べ換えをするために比較を行うフィールドの範囲(フィールドの始まりと終わり)を指定するポインタの対(+ : 始まり,- : 終わり)からなっています.一対のポインタの内,1 番目が無ければ行の初め,2 番目が無ければ行の終わりと見做されます.

  ポインタは,次の様な形式で書かれます.下の例では,(f1 + 1) 番目のフィールドの c1 番目の文字から,(f2 + 1) 番目のフィールドの c2 番目の文字の前までを比較の対象とします.ただし,「 -b 」オプションを指定した場合は,(f1 + 1) 番目のフィールドの (c1 + 1) 番目の文字から,(f2 + 1) 番目のフィールドの (c2 + 1) 番目の文字の前までを比較の対象とします.つまり,「 -b 」オプションを指定しない場合は,フィールドの最初の空白を 0 番目の文字として考慮することになります.

     +f1.c1 -f2.c2

  sort のオプションの内,b, f, n, r は,フィールド指定のすぐ後に書くことが出来ます.

  複数のフィールドを指定すると,コマンド行に書かれた順に比較されます.例えば,1 番目に指定されたフィールドが同じであれば,2 番目に指定されたフィールドに付いて比較を行います.

[使用例]

  1. 6 番目のフィールドの最初の文字をキーとして,file をソートします
    sort +5.1 -5.2 file (sort -b +5.0 -5.1 file)			
  2. 2 番目のフィールドの最初の空白でない文字をキーとして,file をソートします
    sort -r +1.0b - 1.1b file			
  3. パスワードファイル(区切り記号は : )を,ユーザ ID でソートし出力します
    sort -t: +2n -3 /etc/passwd			

菅沼ホーム 本文目次 演習問題解答例 付録目次 索引