【Linuxコマンド】cutでファイルから指定部分を取り出す方法

Linuxではテキストファイルに記述されている内容を指定した位置から取得できる「cut」コマンドがあります。

ここでは「cut」コマンドについて以下の内容で解説していきます。

cut_image

この記事では「cut」コマンドについてわかりやすく解説していますので、ぜひ使い方を覚えておきましょう!

cutコマンドとは

テキストファイルに記述されている内容を指定した範囲で切り出して取得するには「cut」コマンドを使用します。

「cut」コマンドを使用すれば、データが記述されたファイルから指定した範囲の値を取り出すときなどに非常に便利です。

cutコマンドの書式

$ cut オプション ファイル

「cut」コマンドはオプションを使用することにより、必要なバイト数で指定したり、区切り文字でファイルの内容を取得することができます。

cutコマンドのオプション

「cut」コマンドでは主に以下のオプションを使用します。

オプション説明
-b切り出す位置をバイト数を指定する
-c切り出す文字数を指定する
-d区切り文字を指定する
-f切り出すフィールドを指定する

cutコマンドの使い方

ここではcutコマンドの使い方をパターン別に紹介します。

-bでバイト数を指定する

バイト数を指定して必要な位置の文字列を取得するには「-b」オプションを使用します。

以下のファイルtest.txtを使用して、必要な位置の文字列を取得します。

【test.txt】
12345
67890
ABCDE
FGHIJ
KLMNO

2バイト目の文字を取り出してみます。

$ cut -b 2 test.txt

実行結果:
cut_image01

指定した範囲の文字列を取り出したい場合は「-(ハイフン)」を使用して範囲を指定します。

以下では2バイト目から4バイト目までの文字列を取り出しています。

$ cut -b 2-4 test.txt

実行結果:
cut_image02

2文字目から4文字目の文字を取り出すことができました!

また、範囲を別々に取得したい場合は、「,(カンマ)」を使用することで取り出すことができます。

以下では、1バイト目から2バイト目と4バイト目から5バイト目の文字列を取り出しています。

$ cut -b 1-2,4-5 test.txt

実行結果:
cut_image03

-dと-fで区切り文字を指定する

CSVファイルなど区切られたデータを取得したい場合は「-f」「-d」オプションを使用します。

  • 「-f」は区切られたフィールドから取得するフィールド数を指定します。
  • 「-d」は区切り文字を「""(ダブルクォーテーション)」で囲って指定します。

以下のCSVファイルfruits.csvを使用して、必要な位置の文字列を取得します。

【fruits.csv】
1,apple,100
2,orange,80
3,melon,500
4,banana,120
5,strawberry,200

CSVファイルから2項目目のデータを取得します。

$ cut -f 2 -d "," fruits.csv

実行結果:
cut_image04

2項目目の文字列が取得できていることがわかりますね!

結果をファイルに出力する

cutコマンドの結果をファイルに出力したい場合はリダイレクト「>」を使用すると便利です。

以下ではコマンドの結果をdata.txtでリダイレクトしています。

$ cut -f 2 -d "," fruits.csv > date.txt

作成されたdata.txtを確認すると、cutコマンドの結果が出力されています。

Linuxについてもっと知りたい方へ

そもそもLinuxについて、

「実はなんとなくしか理解していない…」
「Linuxを効率よく学習する方法が知りたい」

といった情報を知りたい方は、以下の記事も参考にしてみてくださいね!



まとめ

ここでは、Linuxでファイルから指定した範囲の情報を切り出す「cut」コマンドについて、

  • cutコマンドとは
  • cutコマンドの使い方
  • cutコマンドのオプションと使い方

などについて解説しました。

「cut」コマンドはファイルから必要な情報を取得するときに非常に便利なコマンドですのでこの機会に使い方をよく理解しておきましょう。

もし「cut」コマンドの使い方を忘れてしまったら、この記事を参考にしてくださいね。

Writer

侍エンジニア編集部

株式会社SAMURAI

侍エンジニアは「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。プログラミングに役立つ情報や有用な情報を発信していきます。

あなたの目的に合わせた
SAMURAI ENGINEERの運営サービス

SAMURAI ENGINEER Pro

未経験でも挫折しないプログラミングスクール

詳細はこちら

SAMURAI ENGINEER Plus

日本最大級のサブスク型オンラインITスクール

詳細はこちら

SAMURAI ENGINEER Freelance

「一人で稼げる」スキルを身につける

詳細はこちら