sort ソート

英語表記sort

日本語表記並べ替え

正式名称sort

危険度安全

What does it mean?

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

Command Quest

sort を今日の道具にする

文字列順、数値順、キー指定などで行を並べ替えます。uniqや...

$ sort [オプション]... [ファイル]...
関連用語1
次のコマンド0
FAQ1
参照3

概要

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

基本構文

sort [オプション]... [ファイル]...

詳細解説

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

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

このコマンドを使う場面

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

まず安全に試す方法

1. printf '10n2n1n' > nums.txt
2. sort nums.txt
3. sort -n nums.txt

3分ミッション

少しでも手を動かすと定着しやすくなります。終わった項目にチェックを入れてください。

  1. 10、2、1をsortとsort -nで比較します。

資格試験との関連

  • LinuC レベル1
    範囲: 1.03.2 フィルタを使ったテキストストリームの処理
    根拠: official
    sortは、テキスト処理系の基本フィルタとしてLinuCレベル1の範囲に関わります。
  • LPIC-1
    範囲: 103.2 フィルタを使ったテキストストリームの処理
    根拠: official
    sortは、LPIC-1でテキストストリームへフィルタを適用する技能と関係します。
  • 共通基礎
    範囲: Linuxコマンド基礎
    根拠: editorial
    sortは、ファイル操作またはテキスト処理の基本を支えるため、試験横断の共通知識として価値があります。

オプション

  • -n
    数値として並べ替えます。
    sort -n sizes.txt
  • -r
    逆順にします。
    sort -r names.txt
  • -k キー範囲
    比較に使うキー位置を指定します。
    sort -t ':' -k 1,1 /etc/passwd
  • -u
    重複行をまとめて一意化した結果だけを出します。
    sort -u file.txt

実行結果サンプル

  • printf '10n2n1n' | sort
    1
    10
    2
  • printf '10n2n1n' | sort -n
    1
    2
    10

戻り値コード

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

使用例

  • sort names.txt
  • sort -n sizes.txt
  • sort -t ':' -k 1,1 /etc/passwd
  • sort -u file.txt

よくあるエラー

  • 数値が期待通りに並ばない
    原因: 文字列順で比較しています。
    対処: 数値なら-nを使います。

導入・互換性情報

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

注意点 / セキュリティリスク

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

FAQ

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

関連用語

参照リンク

関連記事