No.045テキスト処理
sort
ソート・並べ替え
文字列順、数値順、キー指定などで行を並べ替えます。uniqやjoinの前処理としても重要です。
答えよく使う形
$ printf '10n2n1n' | sort
1 10 2
$ printf '10n2n1n' | sort -n
1 2 10
$ sort names.txt
練習用の部屋です。何を打っても本物は変わりません。本物の Linux で続ける →
覚える順番の中で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