6章データ処理

直前の章で、多くのデータを集めることができた。これらのデータは、フリーフォマットのテキスト、CSV、XMLなど、多種多様なフォーマットになっているだろう。本章では、これらの解析や処理を行い、分析に必要な情報を抽出する手法を説明する。

6.1 利用するコマンド

データ解析の準備を行うコマンドとして、awkjoinsedtailtrを紹介する。

6.1.1 awk

awkは単なるコマンドではなく、実質的にはテキスト処理用に設計されたプログラミング言語であり、awkをテーマにした専門書籍がいくつも存在する。本書を通じてawkについての詳細を解説していくが、ここでは簡単な例を示す。

6.1.1.1 主要なコマンドオプション

-f
指定したファイルからawkプログラムを読み込む。

6.1.1.2 コマンド実行例

例6-1に示す、awkusers.txtというファイルを見てみよう。

例6-1 awkusers.txt

Mike Jones
John Smith
Kathy Jones
Jane Kennedy
Tim Scott

awkを用いて、姓がJonesとなっているユーザの行を表示する。

$ awk '$2 == "Jones" {print $0}' awkusers.txt 
Mike Jones
Kathy Jones

awkは入力されたファイルの各行を順に処理し、(デフォルトではホワイトスペースによって区切られる)単語をフィールドに格納する。フィールド$0は行全体を示し、$1は最初の単語、$2は次の単語を示す。awkプログラムはパターンと、パターンにマッチした際に実行されるコードの組から構成されている。この例で、パターンはひとつだけであり、 ...

Get 実践 bashによるサイバーセキュリティ対策 ―セキュリティ技術者のためのシェルスクリプト活用術 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.