このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Linux基礎:ファイルの内容を加工して出力するコマンド

ファイルの内容を加工して出力するコマンド

 Linux でシステム管理やテキスト処理を行う際には、ファイルの内容を「そのまま見る」だけではなく、並べ替えたり、行番号を付けたり、特定の項目だけを取り出したりすることが必要になります。こうした 「ファイル内容を加工して出力するコマンド」 を活用することで、ログの分析や設定ファイルの確認作業を効率的に進められます。

 代表的なコマンドには sort, nl, cut があります。sort は行を並べ替え、nl は行番号を付与し、cut は特定のフィールドを抽出するのに用いられます。これらを理解し組み合わせることで、日常的なシステム管理やシェルスクリプトの作成が格段に便利になります。

1.sort コマンド

1.1 基本概要

 sort コマンドは、テキストファイルの内容を 昇順や降順に並べ替えて出力する コマンドです。デフォルトではアルファベット順や文字列順で並べ替えます。

書式

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

1.2. 主なオプション

オプション説明
-n数値としてソートする。
-r降順でソートする。
-k特定のフィールドをキーにしてソートする。
-u重複行を削除してソートする。

1.3. 使用例

以下の内容のファイルを作成しておきます。

[user@rocky9 ~]$ nano list.txt

# 内容
5:orange
20:apple
3:banana
100:melon

例: list.txt を文字列順・数値順に並べ替え

[user@rocky9 ~]$ cat list.txt
5:orange
20:apple
3:banana
100:melon

文字列順

[user@rocky9 ~]$ sort list.txt
100:melon
20:apple
3:banana
5:orange

数値順

[user@rocky9 ~]$ sort -n list.txt
3:banana
5:orange
20:apple
100:melon

2.nl コマンド

2.1. 基本概要

 nl コマンドは、ファイルの各行に 行番号を付与して出力 します。スクリプトのデバッグやログ解析で便利です。

書式

nl [ファイル名]

2.2. 使用例

例: list.txt に行番号を付けて表示

[user@rocky9 ~]$ nl list.txt
     1	5:orange
     2	20:apple
     3	3:banana
     4	100:melon

このように行番号が整形されて表示されるため、対象行を特定するときに役立ちます。

3.cut コマンド

3.1. 基本概要

 cut コマンドは、各行の特定部分(フィールドや文字列範囲)だけを 抽出して出力 するコマンドです。フィールドの区切り文字は -d オプションで指定できます。

書式

cut [オプション] [ファイル名]

3.2. 主なオプション

オプション説明
-d 区切り文字フィールドの区切り文字を指定
-f フィールド番号抽出するフィールドを指定
-c 文字範囲指定範囲の文字を抽出

3.3. 使用例

例: /etc/passwd からユーザー名と UID を取り出す。

[user@rocky9 ~]$ cut -d: -f1,3 /etc/passwd
root:0
bin:1
daemon:2
adm:3
lp:4
(省略)

このように、必要なフィールドだけを簡単に抽出できます。

まとめ

  • sort: 行を並べ替える。数値順・文字列順・降順など多彩なオプションあり。
  • nl: 行番号を付与して表示。行を特定する際に便利。
  • cut: ファイルの特定フィールドや文字範囲を抽出できる。

 これらのコマンドを組み合わせれば、ログ解析や設定ファイルの整理など、日常的な Linux 作業を大幅に効率化できます。