cutコマンド完全入門!-fオプションでフィールド単位にデータを抜き出す方法【Linux初心者向け】
生徒
「Linuxでファイルの一部だけを取り出したいんですけど、どうすればいいですか?」
先生
「それなら cut コマンドが便利ですよ。特に -f オプションを使うと、必要な部分だけ簡単に抜き出せます。」
生徒
「えっ、黒い画面でそんなことができるんですか?パソコン初心者でも大丈夫ですか?」
先生
「もちろん大丈夫です。表を切り取るイメージで、ゆっくり説明しますね。」
1. cutコマンドとは?
cutコマンドは、Linuxでテキストファイルの一部を切り出すための基本コマンドです。特に、表のようなデータから「この列だけ欲しい」というときに活躍します。
例えるなら、ノートに書いた表をハサミで縦に切って、必要な列だけを取り出すような感覚です。難しい計算や操作は不要で、文字の並びをそのまま扱えます。
2. フィールドとは何かを知ろう
フィールドとは、1行の中にある「区切られた項目」のことです。たとえば、名前・年齢・住所が横に並んでいる場合、それぞれがフィールドになります。
Linuxでは、タブやカンマなどの区切り文字で分けられたデータを扱うことが多く、cutコマンドはその区切りを目印に動作します。
3. -fオプションの基本的な使い方
-fオプションは、「何番目のフィールドを取り出すか」を指定するためのものです。数字は左から数えます。
cut -f 1 sample.txt
山田 25 東京
佐藤 30 大阪
この例では、1番目のフィールド、つまり名前だけが表示されています。
4. 区切り文字を指定する -d オプション
データは必ずしもタブで区切られているとは限りません。カンマで区切られている場合は -d オプションを使います。
cut -d , -f 2 data.csv
25
30
ここではカンマを区切り文字として指定し、2番目のフィールド(年齢)を取り出しています。
5. 複数のフィールドをまとめて取得する
-fオプションでは、カンマで区切ることで複数のフィールドを同時に指定できます。
cut -f 1,3 sample.txt
山田 東京
佐藤 大阪
名前と住所だけを表示したい、といった場面でとても便利です。
6. 範囲指定でフィールドを抜き出す
フィールド番号は範囲で指定することもできます。1-3のように書くと、1番目から3番目までを意味します。
cut -f 2-3 sample.txt
25 東京
30 大阪
データが多いときでも、必要な部分をまとめて扱えるのが特徴です。
7. ファイルだけでなくコマンド結果にも使える
cutコマンドは、ファイルだけでなく、他のコマンドの実行結果にも使えます。これをパイプと呼びます。
ls -l | cut -f 9
index.html
sample.txt
一覧表示の結果から、ファイル名だけを取り出す例です。作業を自動化するときによく使われます。
8. cutコマンドを使うときの注意点
cut -fは、区切り文字が正しく揃っていないと、思った通りに動かないことがあります。また、空白とタブは別物なので注意が必要です。
「何で区切られているデータなのか」を最初に確認することが、失敗しないコツです。