新Linux入門|cutコマンドを理解しよう!テキストの特定部分をスマートに切り出す

 Linuxでログファイルや設定ファイルを扱っていると、「特定の列だけを取り出したい」と思うことがありますよね。
そんなときに活躍するのが cutコマンド です。

 cutコマンド を使えば、テキストファイルや標準出力の中から必要な部分だけを効率よく切り出すことができます。
シェルスクリプトでもよく使われる基本コマンドのひとつです。

ここでは、AlmaLinux 9.6 を使って、cutコマンドの仕組みや使い方をやさしく解説します。

✂️ cutコマンドとは?

 cut(カット)コマンド は、テキストデータから特定の列や文字、バイト数の範囲を取り出すためのコマンドです。
 例えばCSVファイルやログファイルなど、一定の区切り文字で構成されたデータから欲しい情報だけを抜き出すときに使います。

コマンド書式

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

主な機能

操作内容使用オプション説明
フィールド(列)を抽出-f指定した列を抜き出す
区切り文字を指定-d区切り記号を指定する(デフォルトはタブ)
文字数で抽出-c指定した文字位置を抜き出す
バイト数で抽出-b指定したバイト範囲を抜き出す

💡 ポイント
 cutコマンドは「区切り文字による列抽出」だけでなく、「文字数」「バイト数」でも柔軟にデータを切り出すことができます。

🧩 主なオプションの詳細

オプション意味使用例説明
-fフィールド(列)番号を指定して抽出cut -f2 file.txt2列目を抽出する
-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-51~5番目を抽出cut -c1-5
3-3番目以降を抽出cut -f3-
-41~4番目までを抽出cut -b-4
2,42番目と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コマンドはシンプルながらとても強力です。
テキスト処理を効率化するうえで欠かせない基本コマンドのひとつなので、
オプションの違いを理解して、自在に使いこなせるようになりましょう。