cutコマンドについてまとめました 【Linuxコマンド集】

  • このエントリーをはてなブックマークに追加
  • Pocket

cutはテキストファイルを横方向に分割するコマンドだ。

csvデータなどの一覧表から、必要な項目だけを抜き出す時に使う。

今回は、cutコマンドを活用したテキストファイルから、必要な情報を抜き出す方法を解説する。

コマンドの概要

ファイルdata2.txtは、次のような内容だ。

「:」で区切られ、1項目目はデータの管理番号、2項目目は商品名、3項目目は単価、4項目目は生産地だ。

すべての情報はcatコマンドなどでテキストファイルの内容を表示させればよい。

しかし、以下のように必要な情報は商品名と単価のみという場合もあるだろう。

cutコマンドは、このように横に長いデータから必要な項目だけを抜き出して表示する時に使用する。

cutは、どの項目が必要か指定したり、区切り文字が何か指定したりする必要があり、その指定には次に説明するオプションが必須となっている。

cutコマンドのオプションたち

オプションの一覧

後から詳細をご紹介するが、まずは一覧で見てみよう。

オプション -b(オプション--bytes)

必要な項目をバイト数で指定する

オプション -d(オプション--delimiter)

区切り文字を指定する

オプション -f(オプション--fields)

必要な項目を項目数で指定する

-bオプション(--bytesオプション):必要な項目をバイト数で指定する

必要な項目をバイト数で指定することができる。

書式は次のとおりだ。

$ cut -b バイト数 ファイル名

ファイルcutdata.txtの各行の2バイト目(半角英数2文字目)を表示する場合は、次のコマンドだ。

$ cut -b 2 cutdata.txt

cutコマンド

各行の2バイト目(半角英数2文字目)を表示した。

管理番号の1桁目だけが表示されている。

次に説明するが、-bオプションでは1文字だけはなく何文字も表示することができる。

連続文字の指定

2つのバイト数を「-」で連結することでその範囲を表示することができる。

ファイルcutdata.txtの各行の2バイト目から4バイト目を表示する場合は、次のコマンドだ。

$ cut -b 2-4 cutdata.txt

cutコマンド

各行の2バイト目から4バイト目を表示した。

離れた文字の指定

バイト数を「,」で連結することで、指定した複数の文字を表示することができる。

ファイルcutdata.txtの各行の2バイト目と4バイト目を表示する場合は、次のコマンドだ。

$ cut -b 2,4 cutdata.txt

cutコマンド

各行の2バイト目と4バイト目を表示した。

離れた文字と連続した文字両方の指定

「-」「,」を組み合わせることもできる。

ファイルcutdata.txtの各行の2バイト目から4バイト目と7バイト目から10バイト目までを表示する場合は、次のコマンドだ。

$ cut -b 2-4,7-10 cutdata.txt

cutコマンド

2バイト目から4バイト目と7バイト目から10バイト目までを表示した。

それ以降の指定

「-」で指定した場合に後ろの数字を指定しなければそれ以降を表示する。

ファイルcutdata.txtの各行の2バイト目と4バイト以降を表示する場合は、次のコマンドだ。

$ cut -b 2,4- cutdata.txt

cutコマンド

2バイト目と4バイト以降を表示した。

-dオプション(--delimiterオプション):区切り文字を指定する

区切り文字によって項目名を区切る場合は、-dオプションで区切り文字を指定する。

-dオプションは、次の-fオプションと組み合わせて使用する。

-fオプション(--fieldsオプション):必要な項目を項目数で指定する

-dオプションによって区切られた項目の中で表示したい項目を項目数で指定するオプションで、書式は次の通りだ。

区切り文字は「"」で囲む。

$ cut -f 項目数 -d 区切り文字 ファイル名

ファイルcutdata.txtを「:」の文字で区切り、その2項目目を表示する場合は、次のコマンドだ。

$ cut -f 2 -d ":" cutdata.txt

cutコマンド

「:」の文字で区切り、その2項目目(商品名)を表示した。

cutコマンドの結果をファイルに出力する

cutコマンドは、ディスプレイに結果を表示するが、大量のデータを処理した場合は、ファイルに出力した方が都合がよい。

ファイルに出力するには、リダイレクトする。

書式は次の通りだ。

$ cut オプション 対象ファイル > 出力ファイル

ファイルcutdata.txtを「:」の文字で区切り、その2項目目の結果をファイルresult.txtとして保存する場合は次の通りだ。

$ cut -f 2 -d ":" cutdata.txt > result.txt

cut関連コマンド

最後にcutコマンドに関連して、基本的なテキストファイル操作のコマンドも紹介しておく

sortコマンド

テキストファイルを並べ替えする。

grepコマンド

テキストファイルの中から文字列を探し出す。

まとめ

今回は、cutコマンドを使ったテキストファイルからの項目の抜き出しの方法を解説した。

様々なデータやログはテキスト形式のファイルとなるが、その一部から必要なデータだけを抜き出し、活用することがあるだろう。

sortコマンド、grepコマンドと組み合わせることによって、Linuxコマンドでありながらデータベースに近い操作をすることができる。

アクセスログやシステム管理ファイルを見やすい形に加工できるので、利用範囲は幅広い。

ぜひ覚えておこう。

 

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できます。

IT講師に興味はありませんか?

・「今までIT講師をやってきたが、更に多くの講義を行いたい」

・「エンジニアとしてやってきたが講師業に魅力を感じている」

・「講師として活躍するためにベースとなる知識を知りたい」

・「様々な分野や言語の講師にチャレンジしてみたい」


という方はぜひIT講師募集のページをご覧ください。


リカレントテクノロジーでは「受講している方々にITを好きになってもらう」ことを目標に、同じ目標に向かって歩んで行ける講師の方を常に探しています。


システム開発やインフラ構築などのエンジニアリング経験を活かし、新入社員などの未経験者や経験の浅い初学者の方々に対してITトレーニングを行っていただくことになります。


テキストやカリキュラムは事前に用意されており、それらを元に講義を進めていくため、IT講師をはじめて実施する方でも安心してトレーニングを実施できます。


IT講師募集のページを見る

SNSでもご購読できます。

コメント

  1. kk より:

    離れた文字の指定の例が2-4になってます。2,4では?

    1. リカレントテクノロジー より:

      ご指摘ありがとうございます。上に引っ張られ、同じ文言になっていますね。修正いたします。

リカレントテクノロジー へ返信する コメントをキャンセル

*

未経験からの育成制度も充実
IT講師に興味はありませんか?

リカレントテクノロジーでIT講師の積極募集を開始! 経験・未経験問わずご応募可能。育成制度で講師スキル向上も目指せます

IT講師に応募する