本記事の構成および論理分析にはAI(人工知能)を使用しています。情報の正確性は、システム管理者(UNIXユーザー)による手動検証済みです。
第2回 | cut で必要な列だけ抜き出す | 全部を見る前に必要な情報へ絞る|UNIX Cafe

Unixコマンド実践 | 第2回
CSV や区切り付きテキストを見ていると、「欲しい情報は一部だけ」ということがよくあります。商品名だけ見たい、金額だけ見たい、担当者だけ見たい、という場面です。
今回は cut を使って、必要な列だけを抜き出す方法を見ていきます。全部を見る前に、まず必要な情報だけに絞り込む。この工程を挟むことで、確認作業を進めやすくなります。
ターミナルにまだ慣れていない方は、「1行の中から、何列目を見るかを決める道具」だと思って読むと入りやすいです。この記事では、サンプルを見ながら1つずつ出力を確かめていきます。
📝 この記事で学べること
-dと-fの基本形- 1列だけ抜き出す方法
- 複数列をまとめて抜き出す方法
sortやuniqへつなげる考え方
cut の基本形
cut では、まず -d で区切り文字を指定し、次に -f で見たい列を指定します。CSV なら区切り文字はカンマなので、-d ',' と書きます。
まずは、どんなファイルを相手にしているのかを見ておくと安心です。たとえば sales.csv が次のような内容だったとします。
date,item,price,staff
2026-05-01,coffee,450,sato
2026-05-01,tea,380,tanaka
2026-05-02,cake,520,sato
2026-05-02,coffee,450,yamadaこのファイルは、1行の中に date、item、price、staff がこの順で並んでいます。つまり 1列目が日付、2列目が商品名、3列目が金額、4列目が担当者です。
cut -d ',' -f 2 sales.csvこれで 2列目だけ、つまり商品名だけを取り出せます。
実行結果は次のようになります。見出しもそのまま残るので、何の列を見ているのかが分かりやすいです。
item
coffee
tea
cake
coffee商品名だけ、金額だけを見る
たとえば商品名なら 2列目、金額なら 3列目です。必要な場所だけを取り出せると、全体を読むより見やすくなります。
cut -d ',' -f 2 sales.csv
cut -d ',' -f 3 sales.csv2列目なら商品名だけ、3列目なら金額だけが縦に並びます。画面に出る情報量を減らすだけでも、確認作業の負担は小さくなります。
複数列をまとめて抜き出す
cut は 1 列だけでなく、複数列もまとめて扱えます。商品名と金額を一緒に見たいときにはこの形が便利です。
cut -d ',' -f 2,3 sales.csv実行すると、商品名と金額だけが並びます。必要な列だけを見る感覚がここでつかめると、あとでログや一覧ファイルを見るときにも応用しやすくなります。
item,price
coffee,450
tea,380
cake,520
coffee,450抜き出したあとに次のコマンドへつなげる
商品名だけを抜き出してから sort や uniq へつなげれば、種類の確認もしやすくなります。
ここで出てくる | は、「左の結果を右へ渡す」という意味です。つまり次のコマンドは、「まず商品名だけを取り出し、その結果を並べ替えて、最後に重複をまとめる」という流れになっています。
uniq は隣り合う重複行しか取り除けないため、あらかじめ sort で並べ替えておく必要があります。この 2 つはセットで使うのが基本です。
cut -d ',' -f 2 sales.csv | sort | uniq「全部を見る前に、まず必要なところだけ取る」という考え方は、いろいろな確認作業で役に立ちます。
よくあるミス
初心者がつまずきやすいのは、区切り文字を間違えることです。CSV なのに -d ' ' のように空白を指定すると、思った列が取れません。逆に、空白区切りのデータにカンマを指定した場合は、区切り文字が見つからないため行全体が 1 列目として扱われ、意図した列が取り出せません。
もう1つのよくあるミスは、「何列目が何だったか」を見失うことです。うまくいかないときは、元のファイルをもう一度見て、左から順に 1 列目、2 列目、3 列目と数え直すと整理しやすいです。
また、cut は単純な区切りテキストには強いですが、引用符付きの複雑な CSV では期待どおりに動かないことがあります。まずは基本的な形で使い、複雑な CSV に当たったら別の道具を考える、くらいの整理で十分です。
結果をファイルに残す
結果を保存したい場合は、次のようにリダイレクトを使うと、ファイルに保存することができます。
cut -d ',' -f 2,3 sales.csv > sales_item_price.txtcut は「決まった列を抜き出す」コマンド、-d は「区切り文字」、-f は「何列目を見るか」と短く覚えておくと、読み返しやすくなります。
手を動かすミニ練習
ここまでの内容が整理できたら、実際に練習用ファイルを作って、cut を試してみましょう。
まずは、ターミナルで次のコマンドを実行して sales.csv を作ります。
cat > sales.csvcat > sales.csv は、「これから入力する内容を標準入力から受け取り、sales.csv というファイルに書き込む」という意味です。
cat > sales.csv をEnterで確定し、5行の文字を入力します。
date,item,price,staff
2026-05-01,coffee,450,sato
2026-05-01,tea,380,tanaka
2026-05-02,cake,520,sato
2026-05-02,coffee,450,yamada最後に Enterで確定し、 Ctrl + D を押すと5行の文字が保存されます。
Ctrl + Dファイルの中身を確認するときは、catコマンドで中身を表示して確認できます。
cat sales.csv表示が次の5行になっていれば準備完了です。
date,item,price,staff
2026-05-01,coffee,450,sato
2026-05-01,tea,380,tanaka
2026-05-02,cake,520,sato
2026-05-02,coffee,450,yamada準備ができたら、次の 3 つを順番に試してみてください。3 番目のコマンドは、sort で行を並べ替えてから uniq で重複をまとめる、という 2 段階の処理になっています。順番が大事なので、そのままコピーして実行してみてください。
cut -d ',' -f 2 sales.csvを実行して、商品名だけが出ることを確認するcut -d ',' -f 3 sales.csvを実行して、金額だけが出ることを確認するcut -d ',' -f 2 sales.csv | sort | uniqを実行して、重複のない商品一覧になることを確認する
この練習では、「どの文字で区切るか」「何列目を抜き出すか」「抜き出した結果を次へ渡す」という 3 つの要点を、自分の手で確かめられます。
必要な列だけに絞ると見やすくなる
一覧を全部のまま見るより、まず必要な列だけに絞る方が確認しやすい場面は多くあります。cut を覚えると、「全部を見る前に、必要なところだけ取る」という考え方が自然に使えるようになります。
次回予告
次回は、xargs を使って同じ作業をまとめて処理する方法を見ていきます。ファイル名だけ変えて何度も打つような作業を、どう楽にしていくかを整理します。

