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
を確認してください。