このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
新Linuxコマンド演習19

新Linuxコマンド演習19 概要
「新Linuxコマンド演習19」では、Linuxでテキストデータを扱う際に非常に便利な cut コマンド を練習します。
cut コマンドは、ファイルや標準入力から指定した部分(列)を切り出すためのツールで、システム管理やログ解析、データ抽出などで頻繁に利用されます。
この演習では、
- /etc/passwd ファイルからユーザー名一覧の抽出
- /etc/group ファイルからグループ名一覧の抽出
- CSVファイルからの任意列データの取り出し
を通して、オプションの使い方(-d と -f)を理解します。

cut コマンドの書式
cut [オプション] ファイル名主なオプション
| オプション | 説明 | 使用例 |
|---|---|---|
| -d 区切り文字 | 区切り文字(デリミタ)を指定する。デフォルトはタブ。 | -d:(コロンで区切る) |
| -f フィールド番号 | 抽出する列番号を指定する。複数指定も可能(例:-f1,3) | -f1(第1列を抽出) |
| --complement | 指定した列以外を表示 | cut -d: --complement -f1 /etc/passwd |
| -c 文字範囲 | バイトまたは文字単位で切り出す | -c 1-5(先頭から5文字まで) |
解説
cut は「区切り文字」を基準にフィールドを分割します。
例えば /etc/passwd は「 :(コロン)」で区切られているため、-d: を指定してフィールドを選びます。
演習問題+模範解答例
演習01:ユーザーの一覧を確認する
問題
システム上のユーザー情報を確認してください。
模範解答例
[suzuki@AlmaLinux ~]$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
(省略)
suzuki:x:1000:1000:suzuki:/home/suzuki:/bin/bash
(省略)
tanaka:x:1001:1001::/home/tanaka:/bin/bash
yamamoto:x:1002:1002::/home/yamamoto:/bin/bash
watanabe:x:1003:1003::/home/watanabe:/bin/bash解説
/etc/passwd ファイルには、システム上のユーザー情報が格納されています。
各行が1人のユーザーを表し、7つのフィールドに分かれています。
| フィールド番号 | 内容 | 例 |
|---|---|---|
| 1 | ユーザー名 | suzuki |
| 2 | パスワード情報(xが入る) | x |
| 3 | ユーザーID (UID) | 1000 |
| 4 | グループID (GID) | 1000 |
| 5 | コメント欄 | suzuki |
| 6 | ホームディレクトリ | /home/suzuki |
| 7 | ログインシェル | /bin/bash |
演習02:cut コマンドでユーザー名一覧を抽出する
問題
cut コマンドを使って /etc/passwd からユーザー名のみを一覧表示してください。
模範解答例
[suzuki@AlmaLinux ~]$ cut -d: -f1 /etc/passwd
root
bin
daemon
(省略)
suzuki
(省略)
tanaka
yamamoto
watanabe解説
- -d: → 区切り文字を「:」に指定
- -f1 → 第1フィールド(ユーザー名)を抽出
この組み合わせで、/etc/passwd からユーザー名だけを取得できます。
システムスクリプトで特定のユーザーリストを抽出する際に非常に便利です。
演習03:cut コマンドでグループ一覧を抽出する
問題
/etc/group ファイルから、グループ名の一覧を表示してください。
模範解答例
[suzuki@AlmaLinux ~]$ cut -d: -f1 /etc/group
root
bin
daemon
(省略)
suzuki
(省略)
tanaka
yamamoto
watanabe
group1
group2
group3解説
/etc/group も「 : 」で区切られており、以下のような構造になっています。
| フィールド番号 | 内容 | 例 |
|---|---|---|
| 1 | グループ名 | group1 |
| 2 | パスワード情報 | x |
| 3 | グループID | 1005 |
| 4 | グループ所属ユーザー | tanaka |
したがって、cut -d: -f1 でグループ名のみを一覧できます。
演習04:区切り文字を指定してCSVファイルを加工する
問題
カンマ区切りのデータファイル test.csv を作成し、商品名の列だけを抽出してください。
模範解答例
[suzuki@AlmaLinux ~]$ echo "1,apple,100yen" > test.csv
[suzuki@AlmaLinux ~]$ echo "2,orange,200yen" >> test.csv
[suzuki@AlmaLinux ~]$ echo "3,banana,500yen" >> test.csv
[suzuki@AlmaLinux ~]$ echo "4,strawberry,400yen" >> test.csv
[suzuki@AlmaLinux ~]$ cat test.csv
1,apple,100yen
2,orange,200yen
3,banana,500yen
4,strawberry,400yen
[suzuki@AlmaLinux ~]$ cut -d, -f2 test.csv
apple
orange
banana
strawberry解説
-d, により区切り文字を「カンマ」に指定しています。
-f2 で第2フィールド(商品名)だけを切り出しています。
このように、cutコマンドはCSVやログファイルから特定の列だけ抽出する場合に有効です。
演習終了時の作業
問題
作成したファイル test.csv を削除してください。
模範解答例
[suzuki@AlmaLinux ~]$ rm test.csv解説
作成した一時ファイルは不要になったら削除します。
これによりシステムを清潔に保つことができます。
cut コマンドの活用例まとめ
| 目的 | コマンド例 | 説明 |
|---|---|---|
| /etc/passwd からユーザー名一覧を取得 | cut -d: -f1 /etc/passwd | コロン区切りの1列目を取得 |
| /etc/group からグループ名一覧を取得 | cut -d: -f1 /etc/group | グループ名のみを抽出 |
| CSVファイルから特定列を抽出 | cut -d, -f2 test.csv | 商品名など任意列を取得 |
| 特定列を除いて表示 | cut -d: --complement -f1 /etc/passwd | 指定以外の列を出力 |
補足
cutは単純な列抽出に特化しており、条件指定などの柔軟な処理を行う場合は awk コマンドが適しています。
しかし、単純な処理では cut の方が軽量で高速です。
まとめ
「新Linuxコマンド演習19」では、cut コマンドを用いてテキストデータの特定フィールドを効率的に抽出する方法を学びました。
- -d:区切り文字を指定する。
- -f:抽出するフィールドを指定する。
- システムファイル( /etc/passwd , /etc/group )の内容を解析できる。
cutコマンドを理解すると、ログ解析・ユーザー管理・CSVデータ処理など、日常的なLinux管理作業を効率化できます。
