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

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

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

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

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメントを残す

*