
新Linux入門|cutコマンドを理解しよう!テキストの特定部分をスマートに切り出す
Linuxでログファイルや設定ファイルを扱っていると、「特定の列だけを取り出したい」と思うことがありますよね。
そんなときに活躍するのが cutコマンド です。
cutコマンド を使えば、テキストファイルや標準出力の中から必要な部分だけを効率よく切り出すことができます。
シェルスクリプトでもよく使われる基本コマンドのひとつです。
ここでは、AlmaLinux 9.6 を使って、cutコマンドの仕組みや使い方をやさしく解説します。

✂️ cutコマンドとは?
cut(カット)コマンド は、テキストデータから特定の列や文字、バイト数の範囲を取り出すためのコマンドです。
例えばCSVファイルやログファイルなど、一定の区切り文字で構成されたデータから欲しい情報だけを抜き出すときに使います。
コマンド書式
cut [オプション] ファイル名主な機能
| 操作内容 | 使用オプション | 説明 |
|---|---|---|
| フィールド(列)を抽出 | -f | 指定した列を抜き出す |
| 区切り文字を指定 | -d | 区切り記号を指定する(デフォルトはタブ) |
| 文字数で抽出 | -c | 指定した文字位置を抜き出す |
| バイト数で抽出 | -b | 指定したバイト範囲を抜き出す |
💡 ポイント
cutコマンドは「区切り文字による列抽出」だけでなく、「文字数」「バイト数」でも柔軟にデータを切り出すことができます。
🧩 主なオプションの詳細
| オプション | 意味 | 使用例 | 説明 |
|---|---|---|---|
| -f | フィールド(列)番号を指定して抽出 | cut -f2 file.txt | 2列目を抽出する |
| -d | 区切り文字を指定(デフォルトはタブ) | cut -d',' -f1 file.csv | コンマ区切りの1列目を抽出 |
| -c | 文字単位で抽出 | cut -c1-5 file.txt | 各行の1~5文字目を切り出す |
| -b | バイト単位で抽出 | cut -b1-10 file.txt | 各行の1~10バイトを抽出 |
💡 補足
文字とバイトは異なる場合があります。マルチバイト文字(日本語)を含む場合は、-c の方を使うのがおすすめです。
🧠 基本の使用例
① CSVファイルから特定の列を取り出す
[suzuki@AlmaLinux ~]$ cut -d',' -f2,3 file.csv📘 解説
-d',' は区切り文字をコンマに指定。
-f2,3 は2列目と3列目を抽出します。
たとえば以下のような入力データ
ID,Name,Department
1,tanaka,Sales
2,yamamoto,IT
3,watanabe,HR実行結果は次のようになります。
Name,Department
tanaka,Sales
yamamoto,IT
watanabe,HR② バイト単位で文字を切り出す
[suzuki@AlmaLinux ~]$ cut -b 1-5 file.txt📘 解説
各行の1バイト目から5バイト目までを抽出します。
バイト単位で指定できるため、固定長データの処理に便利です。
③ /etc/passwd ファイルからユーザー名一覧を表示する
Linuxシステムのユーザー情報は /etc/passwd に格納されています。
このファイルは「:(コロン)」で区切られており、1列目がユーザー名です。
[suzuki@AlmaLinux ~]$ cut -d: -f1 /etc/passwd出力例
root
bin
daemon
suzuki📘 解説
-d: で区切り文字をコロンに指定し、-f1 で1列目(ユーザー名)を抽出しています。
システムユーザー一覧を簡単に確認できる便利な方法です。
④ /etc/group ファイルからグループ名を抽出
/etc/group ファイルも同じように「:」で区切られています。
各行は次のような構造です:
| 項目 | 説明 |
|---|---|
| group_name | グループ名 |
| password | グループパスワード(通常x) |
| GID | グループID |
| user_list | グループに属するユーザー一覧 |
📘例
wheel:x:10:root,suzuki
staff:x:50:tanaka,yamamotoこのとき、グループ名だけを取り出すには次のコマンドを使います。
[suzuki@AlmaLinux ~]$ cut -d: -f1 /etc/group出力結果
root
bin
daemon
wheel
staff💡 /etc/group のように構造が決まっているファイルを扱うとき、cutコマンドは非常に役立ちます。
🧮 応用:範囲指定の使い方
cutでは、フィールド番号や文字範囲を柔軟に指定できます。
| 指定方法 | 意味 | 例 |
|---|---|---|
| 1-5 | 1~5番目を抽出 | cut -c1-5 |
| 3- | 3番目以降を抽出 | cut -f3- |
| -4 | 1~4番目までを抽出 | cut -b-4 |
| 2,4 | 2番目と4番目を抽出 | cut -f2,4 |
📘 例
[suzuki@AlmaLinux ~]$ cut -d',' -f1-2 file.csv→ 1列目から2列目までを抽出します。
⚙️ コマンドまとめ
| 操作目的 | コマンド例 | 説明 |
|---|---|---|
| 2列目と3列目を抽出 | cut -d',' -f2,3 data.csv | 区切り文字をコンマに指定 |
| 各行の先頭5文字を抽出 | cut -c1-5 file.txt | 文字範囲で指定 |
| 1~10バイトを抽出 | cut -b1-10 log.txt | バイト単位で切り出し |
| ユーザー名を表示 | cut -d: -f1 /etc/passwd | コロン区切りから1列目を取得 |
| グループ名を表示 | cut -d: -f1 /etc/group | グループ情報を抽出 |
✅ まとめ
| 特徴 | 内容 |
|---|---|
| コマンド名 | cut |
| 主な用途 | テキストデータから特定の列・範囲を抽出 |
| よく使うオプション | -d(区切り文字)・-f(フィールド指定)・-c(文字指定)・-b(バイト指定) |
| 代表的な用途 | CSVやログの列抽出、/etc/passwdや/etc/groupの解析 |
cutコマンドはシンプルながらとても強力です。
テキスト処理を効率化するうえで欠かせない基本コマンドのひとつなので、
オプションの違いを理解して、自在に使いこなせるようになりましょう。
