概要
文字列順、数値順、キー指定などで行を並べ替えます。uniqやjoinの前処理としても重要です。
基本構文
sort [オプション]... [ファイル]...詳細解説
sortは、入力行を一定の規則で並べ替えるコマンドです。文字列順だけでなく、数値順、逆順、特定列だけを基準にした並べ替えもできます。
実務では、重複除去前の整列、ログや一覧の整理、キーごとの比較前処理などで頻繁に使います。uniqやjoinは前提として整列が必要なことが多いため、sortの理解は他の道具にも波及します。
このコマンドを使う場面
一覧を整列したい時、uniqやjoinの前処理をしたい時、数値順で出力したい時に使います。
まず安全に試す方法
1. printf '10n2n1n' > nums.txt
2. sort nums.txt
3. sort -n nums.txt
3分ミッション
少しでも手を動かすと定着しやすくなります。終わった項目にチェックを入れてください。
-
10、2、1をsortとsort -nで比較します。
資格試験との関連
-
LinuC レベル1
範囲: 1.03.2 フィルタを使ったテキストストリームの処理根拠: officialsortは、テキスト処理系の基本フィルタとしてLinuCレベル1の範囲に関わります。
-
LPIC-1
範囲: 103.2 フィルタを使ったテキストストリームの処理根拠: officialsortは、LPIC-1でテキストストリームへフィルタを適用する技能と関係します。
-
共通基礎
範囲: Linuxコマンド基礎根拠: editorialsortは、ファイル操作またはテキスト処理の基本を支えるため、試験横断の共通知識として価値があります。
実行結果サンプル
-
printf '10n2n1n' | sort1 10 2 -
printf '10n2n1n' | sort -n1 2 10
戻り値コード
- 0 正常終了。並べ替えに成功しました。
- >0 読取失敗や一時領域問題などで失敗しました。
使用例
sort names.txtsort -n sizes.txtsort -t ':' -k 1,1 /etc/passwdsort -u file.txt
よくあるエラー
-
数値が期待通りに並ばない 原因: 文字列順で比較しています。対処: 数値なら-nを使います。
導入・互換性情報
POSIXで基本機能は共通です。ロケールの影響が大きいため、環境差は主に照合順序で現れます。
注意点 / セキュリティリスク
危険度は低いですが、ロケール依存で順序が変わることがあります。機械処理ではLC_ALL=Cを使う設計も検討してください。
FAQ
-
Q. uniqの前にsortが必要なのはなぜですか。 A. uniqは隣接した重複しかまとめないため、同値行を寄せるためにsortが必要です。
関連用語
参照リンク
- カテゴリー: Text Processing
- レベル: Basic
- 対応試験: LinuC, LinuC レベル1, LPIC, LPIC-1, 共通基礎