カテゴリ: Linuxコマンド集 更新日: 2026/05/24

sort -kオプションの使い方を完全ガイド!初心者でもわかるLinuxで特定の列を並び替える方法

sort -kオプション|特定のフィールドでソートする
sort -kオプション|特定のフィールドでソートする

先生と生徒の会話形式で理解しよう

生徒

「Linuxでデータを並び替えたいんですけど、数字や名前がぐちゃぐちゃで……どうしたらいいですか?」

先生

「それならsortコマンドを使います。特に-kオプションを使うと、並び替えたい列を指定できます。」

生徒

「列って何ですか?表みたいなものですか?」

先生

「そうです。表の何番目を基準に並び替えるかを決めるのが-kなんですよ。」

1. sortコマンドとは?

1. sortコマンドとは?
1. sortコマンドとは?

sortコマンドは、Linuxで文字や数字が並んだデータを順番に並び替えるための基本コマンドです。テキストファイルの中身を、名前順、数字順、日付順などに整理したいときによく使われます。

パソコン初心者の方には、Excelの「並び替え」機能を文字だけで操作するイメージを持つとわかりやすいです。黒い画面(ターミナル)で命令を書く代わりに、細かい条件まで指定できるのが特徴です。

2. フィールド(列)とは何かを理解しよう

2. フィールド(列)とは何かを理解しよう
2. フィールド(列)とは何かを理解しよう

フィールドとは、1行の中で区切られたデータのかたまりのことです。多くの場合、スペースやタブで区切られています。

たとえば「名前 年齢 点数」というデータがある場合、名前が1番目、年齢が2番目、点数が3番目のフィールドになります。sort -kは、この「何番目か」を指定するためのオプションです。

3. sort -kの基本的な書き方

3. sort -kの基本的な書き方
3. sort -kの基本的な書き方

-kオプションの基本形はとてもシンプルです。


sort -k 2 data.txt
山田 20 80
佐藤 18 90
鈴木 22 70

この例では、2番目のフィールド(年齢)を基準に並び替えています。数字が小さい順に並ぶので、18、20、22の順になります。

4. 数字として正しく並び替える方法

4. 数字として正しく並び替える方法
4. 数字として正しく並び替える方法

そのままsortを使うと、数字も文字として扱われます。そのため「100」が「20」より前に来ることがあります。これを防ぐには-nを組み合わせます。


sort -k 3 -n score.txt
佐藤 18 90
山田 20 80
鈴木 22 70

-nは「数値として並び替える」という意味です。点数や金額などを扱うときは、ほぼ必須のオプションです。

5. 開始位置と終了位置を指定する

5. 開始位置と終了位置を指定する
5. 開始位置と終了位置を指定する

-kは「どこからどこまで」を細かく指定できます。-k 2,2のように書くと、2番目のフィールドだけを使うという意味になります。


sort -k 1,1 name.txt
佐藤 東京
鈴木 大阪
山田 名古屋

この指定を覚えておくと、複雑なデータでも安心して並び替えできます。

6. 区切り文字を変更する方法

6. 区切り文字を変更する方法
6. 区切り文字を変更する方法

データがカンマ区切り(CSV)の場合は、そのままでは正しく列を認識できません。そんなときは-tオプションを使います。


sort -t , -k 2 data.csv
山田,20,80
佐藤,18,90
鈴木,22,70

-t ,は「カンマで区切られている」と教える指定です。これで表として正しく扱われます。

7. 逆順(大きい順)に並び替える

7. 逆順(大きい順)に並び替える
7. 逆順(大きい順)に並び替える

成績を高い順にしたい場合などは、-rを追加します。これは「逆順」を意味します。


sort -k 3 -n -r score.txt
佐藤 18 90
山田 20 80
鈴木 22 70

オプションは順番を入れ替えても問題ありません。読みやすい並びで書くのがおすすめです。

8. sort -kが役立つ場面

8. sort -kが役立つ場面
8. sort -kが役立つ場面

sort -kは、ログファイルの整理、名簿の並び替え、売上データのチェックなど、日常的なLinux作業で頻繁に使われます。

最初は難しく感じますが、「何列目で並び替えたいか」を意識するだけで、一気に理解しやすくなります。紙の表を並べ替える感覚で考えるのがコツです。

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Linuxのsortコマンドとは何ですか?初心者でも簡単に使えるテキスト並び替え機能なのでしょうか?

sortコマンドは、LinuxやUNIX環境で使える基本的なテキスト並び替えコマンドです。名前順、数字順、日付順などにデータを整理できるため、CSVファイル整理やログ解析、売上データ確認など幅広く活用されています。Linux初心者にも人気の高い基本コマンドです。
関連記事:
カテゴリの一覧へ
新着記事
New1
Linuxコマンドの基本
Linuxのパイプ(|)とは?複数コマンドをつなげて効率化する方法を完全解説
New2
テキスト・データ処理
tailコマンドとは?Linuxでファイルの末尾を表示する基本をやさしく解説!
New3
ファイル・ディレクトリ操作
find -groupオプションの使い方を解説!初心者でもできる所有グループによるファイル検索
New4
圧縮・アーカイブ
rar xオプションの使い方を完全ガイド!Linuxでディレクトリ構造を保持して展開する方法を初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
テキスト・データ処理
catコマンドとは?Linuxでファイル内容を表示・連結する基本
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
cd ~ の使い方を完全解説!ホームディレクトリへの移動方法と初心者向けLinuxコマンド入門
No.4
Java&Spring記事人気No4
圧縮・アーカイブ
gzipコマンドの使い方を完全ガイド!初心者でもわかるLinuxでファイル圧縮の基本