sortコマンドで並び替え操作 macOS/Linux/Unixシェルコマンド
sortコマンドは、テキストファイルの内容を行単位で並び替えるために使用されます。標準入力からのデータや、指定したファイルの内容をソートすることができます。ここでは、sortコマンドの主なオプションと使用例を紹介します。【sortまとめ】基本的な使用法
内容 | 実行コマンド |
---|---|
ファイル内容のソート | sort ファイル名 |
複数ファイルの内容を結合してソート | sort ファイル名1 ファイル名2 |
オプション
オプション | 説明 |
---|---|
-n | 数値としてソートします。デフォルトでは文字列としてソートされます。 |
-r | 逆順でソートします(降順)。 |
-k | キーとして指定したフィールド(列)のみでソートします。例えば、-k 2なら2列目のデータを基準にソートします。 |
-t | フィールドの区切り文字を指定します。デフォルトはスペースです。 |
-u | 重複を削除してユニークな行のみを出力します。 |
-o | 出力先ファイルを指定します。 |
-f | 大文字と小文字を区別せずにソートします。 |
-c | ソートされているかをチェックし、ソートされていない場合は最初の箇所を報告します。 |
-m | 既にソートされている複数のファイルをマージします。 |
【sort初級編】sortを使ってみよう
数値順にソートする
sort -n ファイル名逆順でソートする
sort -r ファイル名2列目を数値としてソートする
sort -k 2 -n ファイル名カンマ区切りのファイルで、2列目を基準にソートする
sort -t, -k2 -n ファイル名次のサンプルデータを用意しました。このデータには、果物の名前と数量がカンマ区切りで記載されています。
text
sortコマンドでこのデータの並び順を操作してみます。次はort -t, -k2 -n fruit_data.txtの実行結果です:りんご,100
ばなな,20
ぶどう,300
みかん,50
output
なな,20
みかん,50
りんご,100
いちご,200
ぶどう,300
あんず,500
重複を削除する
sort ファイル名 | uniq(またはsort -u ファイル名)sortコマンドは、ログファイルの分析、データの前処理、または単純にファイル内の行を整理する際に非常に便利です。複数のオプションを組み合わせることで、さまざまなソート条件を指定できます。
関連記事
アイデアノート > macOSで使えるシェル