GNU Core Utilities/sort
表示
sort コマンドは、入力されたデータをソート(並べ替え)するためのコマンドです。GNU coreutils に含まれており、Linux では GNU 版が、FreeBSD では BSD 版が提供されています。基本的な動作は共通していますが、細かなオプションの違いがあります。
基本的な使い方
[編集]sort [オプション] ファイル...
主なオプション(GNU coreutils版)
[編集]主なオプション オプション 説明 -n, --numeric-sort数値としてソート -r, --reverse降順にソート -k, --key=KEY指定したキーでソート(デフォルトは1列目) -u, --unique重複行を削除 -f, --ignore-case大文字と小文字を区別しない -t, --field-separator=SEPフィールド区切り文字を指定 -b, --ignore-leading-blanks行頭の空白を無視 -M, --month-sort月名を基準にソート(例: Jan, Feb, ...)
例
[編集]データを昇順でソート
[編集]sort file.txt
file.txt の内容を昇順にソート。
データを降順でソート
[編集]sort -r file.txt
file.txt の内容を降順にソート。
数値としてソート
[編集]sort -n file.txt
file.txt の内容を数値として昇順にソート。
重複行を削除してソート
[編集]sort -u file.txt
file.txt の内容を昇順でソートし、重複行を削除。
指定した列でソート
[編集]sort -k 2 file.txt
file.txt の2列目を基準に昇順でソート。
行頭の空白を無視してソート
[編集]sort -b file.txt
行頭の空白を無視してソート。
フィールド区切り文字を指定してソート
[編集]sort -t ',' -k 2 file.csv
file.csv のカンマ区切りの2列目を基準にソート。
FreeBSD 版との違い
[編集]FreeBSD でも sort コマンドは提供されていますが、GNU coreutils 版といくつか違いがあります。
主な違い:
[編集]-M(月名でソート)オプションが FreeBSD にはない- FreeBSD の
sortには、-Mオプションがないため、月名でソートすることはできません。
- FreeBSD の
-k(キー指定でソート)オプションの挙動が異なる- FreeBSD 版の
sortでは、-kオプションの挙動が GNU 版とわずかに異なる場合があります。
- FreeBSD 版の
- GNU coreutils 版を FreeBSD で使う方法
coreutilsパッケージをインストールするとgsortという名前で GNU 版sortが使える。
pkg install coreutils gsort file.txt # GNU coreutils 版の sort
詳しくは、それぞれの環境で man sort を確認してください。