No.045テキスト処理

sort

ソート・並べ替え

知識レベル 基礎安全に試せる一般ユーザーで使える

文字列順、数値順、キー指定などで行を並べ替えます。uniqやjoinの前処理としても重要です。

答えよく使う形

  1. 文字列順です
  2. 数値順に並びます
  3. 数値として並べ替えます
visitor@goodly: ~

$ printf '10n2n1n' | sort

1
10
2

$ printf '10n2n1n' | sort -n

1
2
10

$ sort names.txt

覚える順番の中で30 コマンド・20 駅め / 30LPIC-1・25 駅め / 106

どんなコマンド?

こんなときに

一覧を整列したい時、uniqやjoinの前処理をしたい時、数値順で出力したい時に使います。

sortは、入力行を一定の規則で並べ替えるコマンドです。文字列順だけでなく、数値順、逆順、特定列だけを基準にした並べ替えもできます。

実務では、重複除去前の整列、ログや一覧の整理、キーごとの比較前処理などで頻繁に使います。uniqやjoinは前提として整列が必要なことが多いため、sortの理解は他の道具にも波及します。

書き方とオプション

組み立ててみるオプションを押すと、下の1行に足されます。もう一度押すと外れます。

$ sort

使用例と実行結果

行を押すとコピーできます。

1
10
2
文字列順です。
1
2
10
数値順に並びます。

まず安全に試す

3分ミッション

手を動かすと覚えやすくなります。できたものに印を付けてください(この端末に残ります)。

0 / 1

ゲームで確かめる

つまずいたとき

数値が期待通りに並ばない

原因文字列順で比較しています。

こうする数値なら-nを使います。

終わったときの数(戻り値)

$ echo $?

  • 0正常終了。並べ替えに成功しました。
  • >0読取失敗や一時領域問題などで失敗しました。

気をつけることと入れ方

気をつけること

危険度は低いですが、ロケール依存で順序が変わることがあります。機械処理ではLC_ALL=Cを使う設計も検討してください。

環境による違い

ロケールの影響が大きいため、環境差は主に照合順序で現れます。

確かめた環境2026-04-09 に確認

よくある質問

uniqの前にsortが必要なのはなぜですか。

uniqは隣接した重複しかまとめないため、同値行を寄せるためにsortが必要です。

資格試験では

  • LinuC レベル1大事1.03.2 フィルタを使ったテキストストリームの処理
  • LPIC-1大事103.2 フィルタを使ったテキストストリームの処理
  • 共通基礎大事Linuxコマンド基礎

sort を最後まで読みました。

Linux コマンド辞典に戻る105 / 144

Goodly のメニュー