第2回 | cut で必要な列だけ抜き出す | 全部を見る前に必要な情報へ絞る|UNIX Cafe

* 当サイトでは、コンテンツの一部に広告を掲載しています。

System Note $ cat /proc/ai-disclosure

本記事の構成および論理分析にはAI(人工知能)を使用しています。情報の正確性は、システム管理者(UNIXユーザー)による手動検証済みです。

第2回 | cut で必要な列だけ抜き出す | 全部を見る前に必要な情報へ絞る|UNIX Cafe

Unixコマンド実践 | 第2回

CSV や区切り付きテキストを見ていると、「欲しい情報は一部だけ」ということがよくあります。商品名だけ見たい、金額だけ見たい、担当者だけ見たい、という場面です。

今回は cut を使って、必要な列だけを抜き出す方法を見ていきます。全部を見る前に、まず必要な情報だけに絞り込む。この工程を挟むことで、確認作業を進めやすくなります。

ターミナルにまだ慣れていない方は、「1行の中から、何列目を見るかを決める道具」だと思って読むと入りやすいです。この記事では、サンプルを見ながら1つずつ出力を確かめていきます。

📝 この記事で学べること

  • -d-f の基本形
  • 1列だけ抜き出す方法
  • 複数列をまとめて抜き出す方法
  • sortuniq へつなげる考え方
目次

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行の中に dateitempricestaff がこの順で並んでいます。つまり 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.csv

2列目なら商品名だけ、3列目なら金額だけが縦に並びます。画面に出る情報量を減らすだけでも、確認作業の負担は小さくなります。

複数列をまとめて抜き出す

cut は 1 列だけでなく、複数列もまとめて扱えます。商品名と金額を一緒に見たいときにはこの形が便利です。

cut -d ',' -f 2,3 sales.csv

実行すると、商品名と金額だけが並びます。必要な列だけを見る感覚がここでつかめると、あとでログや一覧ファイルを見るときにも応用しやすくなります。

item,price
coffee,450
tea,380
cake,520
coffee,450

抜き出したあとに次のコマンドへつなげる

商品名だけを抜き出してから sortuniq へつなげれば、種類の確認もしやすくなります。

ここで出てくる | は、「左の結果を右へ渡す」という意味です。つまり次のコマンドは、「まず商品名だけを取り出し、その結果を並べ替えて、最後に重複をまとめる」という流れになっています。

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.txt

cut は「決まった列を抜き出す」コマンド、-d は「区切り文字」、-f は「何列目を見るか」と短く覚えておくと、読み返しやすくなります。

手を動かすミニ練習

ここまでの内容が整理できたら、実際に練習用ファイルを作って、cut を試してみましょう。

まずは、ターミナルで次のコマンドを実行して sales.csv を作ります。

cat > sales.csv

cat > 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 段階の処理になっています。順番が大事なので、そのままコピーして実行してみてください。

  1. cut -d ',' -f 2 sales.csv を実行して、商品名だけが出ることを確認する
  2. cut -d ',' -f 3 sales.csv を実行して、金額だけが出ることを確認する
  3. cut -d ',' -f 2 sales.csv | sort | uniq を実行して、重複のない商品一覧になることを確認する

この練習では、「どの文字で区切るか」「何列目を抜き出すか」「抜き出した結果を次へ渡す」という 3 つの要点を、自分の手で確かめられます。

必要な列だけに絞ると見やすくなる

一覧を全部のまま見るより、まず必要な列だけに絞る方が確認しやすい場面は多くあります。cut を覚えると、「全部を見る前に、必要なところだけ取る」という考え方が自然に使えるようになります。

次回予告

次回は、xargs を使って同じ作業をまとめて処理する方法を見ていきます。ファイル名だけ変えて何度も打つような作業を、どう楽にしていくかを整理します。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

のいのアバター のい UNIX Cafe マスター

Macintosh Color Classicから始まった旅は、長いWindows時代を経て、Windows10のサポート終了をきっかけにUNIXの世界へ戻ってきました。UNIX Cafeでは、UNIX・Linux・そしてMacな世界を、むずかしい言葉を使わず、物語のように書いています。プログラミングは、アイデアをコンピューターに伝えるための言葉です。簡単な単語と文法を覚えれば、誰でもコマンドを使えます。ぜひ一度、やさしいプログラミングの世界をのぞいてみてください。

Created by UNIX Cafe

目次