Software Design plusシリーズAWK実践入門
2015年5月26日紙版発売
2015年5月26日電子版発売
中島雅弘,富永浩之,國信真吾,花川直己 著
B5変形判/416ページ
定価3,278円(本体2,980円+税10%)
ISBN 978-4-7741-7369-6
書籍の概要
この本の概要
UNIX登場期から使われ続けているawkを習得すれば,ログデータや各種テキストデータから必要な情報を引き出すことができます。手軽なデータ解析,テキスト整形ツールとしての有用性はクラウド時代の今でも変わりありません。
本書は最新のgawk 4系に対応し,「awkをはじめて使う人から,プロのプログラマまで使っていただける」ことを目指した以下の目的でまとめています。
- awkと正規表現のリファレンスとしての活用
- awkプログラミングをサポートするスクリプトライブラリ集
- awkを使った問題解決の事例集
こんな方におすすめ
- コマンドラインインターフェイスを利用するすべてのエンジニア
- ログをはじめとする各種テキストデータを手軽に分析したい方
- awkを初めて使う方
- プロのプログラマ
この書籍に関連する記事があります!
- Excel vs. AWK!? 基礎の知識は長く役に立つ!
- ネットワーク上のリソース活用がサービスにとってもはや当然のものとなり,開発・運用を問わず,エンジニアはこれまで以上にサーバに対する作業が必要になります。
目次
第1章 awkとコマンドラインインターフェイス(CLI)
- 1.1 プログラミング言語awk
- awkの歴史
- awkの種類
- 1.2 コマンドラインインターフェイスを駆使してawkを使いこなす
- CLI
- あなたとOSの仲立ち「SHELL」
- コマンドの実行
- コマンドの直列実行
- 複数のコマンドをつなぐ「パイプ」
- 入出力先を変更する「リダイレクト」
- 画面で確認しながら,ファイルにも「リダイレクト」したいならtee
- SHELLじゃなくて,awkに解釈してもらいたいところは「エスケープ」しよう
- 1.3 コマンドラインツールいろいろ
- catでファイルの結合と出力
- 行の並べ替えはsortにおまかせ
- 重複行をまとめるuniq
- wcで行,単語,文字を数える
- 文字列検索のスペシャリストgrep
- テキストストリームをまとめて加工sed
- どのツールを使う?
- 1.4 エディタを使ってスクリプトを書く
- 1.5 bashのコマンドライン編集機能
- Column
- もっとCLIを理解したい人へ
- gawkのインストール
第2章 awkの言語仕様
- 2.1 awkの使い方
- 2.2 言語の構造
- 2.3 入力列の構造
- レコード
- フィールド
- 2.4 パターン
- [1]BEGINとEND
- [2]BEGINFILEとENDFILE
- [3]比較演算式と論理演算式
- [4]正規表現
- [5]パターンの範囲
- [6]複合パターン
- 2.5 アクション
- 2.6 定数
- 2.7 変数,型
- 2.8 特別な変数
- 2.9 配列
- [1]多次元配列
- [2]配列要素の消去
- 2.10 式,演算子
- [1]算術演算
- [2]比較演算
- [3]論理演算
- [4]文字列演算子
- 2.11 制御構造
- [1]順次構造
- [2]選択構造 if構文
- [3]選択構造 switch構文
- [4]反復構造 while構文
- [5]反復構造 do構文
- [6]反復構造 for構文
- [7]配列の要素を列挙するfor構文
- [8]添字の順序の指定
- [9]制御文 breakとcontinue
- [10]制御文 nextとexit
- 2.12 出力
- [1]print
- [2]printf
- 2.13 関数
- [1]数学関数
- [2]文字列操作関数
- [3]型関数
- 2.14 ユーザー定義関数
- 2.15 Indirect関数
- 2.16 入力
- 2.17 外部プログラムとの連携
- Column
- 制御の流れ
第3章 正規表現
- 3.1 正規表現とは
- [1]正規表現とパターン
- [2]文字と文字列
- [3]正規表現の構文
- [4]正規表現の流れ図
- 3.2 正規表現式の演算
- [1]文字列の選択 選択 A|B
- [2]文字列の連結 連結 AB
- [3]あってもなくてもよい文字列 一項選択 A?
- [4]文字列のグループ化 括弧 (A)
- [5]文字列の正の繰り返し 正閉包 A+
- [6]空列を含む繰り返し 閉包 A*
- [7]指定された回数の繰り返し {n, m}
- 3.3 文字の指定
- [1]何にでもマッチする文字 ワイルド文字 .
- [2]特別な意味を持つ文字 メタ文字
- [3]特別な文字を普通の文字に エスケープ \c
- [4]普通には表せない文字 特殊文字
- [5]新しい特殊文字 gawkのみで利用可能な特殊文字
- [6]文字の範囲の指定 文字クラス [abc]
- [7]文字の順序と範囲の指定 順序による指定 [a-c]
- [8]文字クラスの表記法
- [9]文字の範囲の除外 範囲の除外 [^abc]
- [10]文字クラス中の特別な文字
- [11]文字コードによる文字の指定 73,\x6a
- [12]全角文字
- 3.4 正規表現と文字列マッチング
- [1]正規表現の使い道
- [2]awk中の特別な文字
- [3]マッチングと一致列の位置
- [4]入力列の位置指定
- [5]マッチングで取り出される文字列 最左最長な一致列
- 3.5 正規表現の作り方と使い方
- [1]応用例(1) 整数と実数
- [2]応用例(2) 郵便番号と電話番号
- Column
- 空式ε
- 正規表現の等式クイズ
- 正規表現の仕様:POSIXとLSB
- 文字列の否定
- 正規表現のすごろくゲーム
第4章 awkスクリプト集
- 4.1 1行スクリプト(ワンライナー)
- [1]表示する行の指定
- [2]表示する行の範囲の指定
- [3]空白行の削除
- [4]連続する同じ行の削除
- [5]ファイルを読み込んだ後の処理
- [6]行やフィールドの個数
- [7]行やフィールドの番号付け
- [8]ある文字列を含む行やフィールドの個数
- [9]ある文字列にマッチするフィールドの検索
- [10]数値フィールドの総計
- [11]フィールド単位の加工
- [12]フィールドや行の順序をひっくり返して表示
- [13]1行の出力幅の指定
- [14]マッチングによる文字列の置換
- [15]エスケープ・シーケンスを用いた文字列の置換
- [16]区切りの変更
- [17]アイテムが重複している行を抽出する
- 4.2 文字列操作関数
- [1]文字列の挿入と削除
- [2]文字列の繰返しと裏返し
- [3]アスキーコードへの変換
- [4]文字の置換
- 4.3 ユーザー定義の数値処理関数
- [1]最大公約数
- [2]ランダム整数列の発生
- [3]四捨五入
- [4]秒数を時間単位に変換
- [5]曜日の算出
- [6]階乗
- [7]数式への代入
- [8]数式の定数倍
- [9]数式の加法
- [10]数式の乗法
- 4.4 入出力補助関数
- [1]オプション指定値の読み込み
- [2]一時ファイル名の作成
- [3]カラー出力
- 4.5 レコードとフィールドの処理
- [1]ファイルの先頭部分と末尾部分
- [2]フィールドの出現回数
- [3]フィールドの配列への格納
- [4]フィールドの整形出力
- [5]フィールド配列の二段出力
- 4.6 基本的なテキスト処理
- [1]テキストの大きさ
- [2]記号の出現回数
- [3]タブとスペースの変換
- [4]1行の長さをそろえて表示
- [5]行番号と桁番号の表示
- 4.7 数表の処理
- [1]n進数の変換
- [2]集計(1)
- [3]集計(2)
- [4]フィールド値によるソート
- [5]クイックソート
- [6]マージソート
- 4.8 複雑な正規表現の生成
- [1]文字列自身を表す正規表現
- [2]正規表現式の連結と繰返し
- [3]文字列の先頭部分と巡回
- 4.9 正規表現の拡張マッチング関数
- [1]最左最短マッチング
- [2]連続マッチング(1)
- [3]連続マッチング(2)
- Column
- クイックソートのアルゴリズム
- マージソートのアルゴリズム
第5章 awkの活用
- 5.1 文字列のデータ収集と統計処理
- [1]awkで暗号解読支援
- [2]ローリングハッシュによる文字列の部分一致
- [3]編集距離による文字列の類似度
- [4]少しランダムな整数列の生成
- [5]マルコフ情報源によるランダム文字列の生成
- 5.2 データベース管理
- [1]カレンダー
- [2]住所録
- [3]小遣い帳
- [4]連想配列による集合演算
- [5]レコード形式とCSV形式のデータベース
- [6]関係データベースのテーブルの結合
- [7]買い物かごの分析
- 5.3 サーバー管理とログ解析
- [1]Webサーバーのログの解析
- [2]SNSのデータ分析
- 5.4 組み合わせの計算と位相グラフのデータ構造
- [1]関数のグラフ
- [2]順列と組み合わせの列挙
- [3]正整数の分割の列挙
- [4]木構造の算法とディレクトリ構造への応用
- [5]有向グラフの隣接行列
- [6]ダイクストラ法によるネットワークの最短経路
- 5.5 awkでパズルとゲーム
- [1]簡単な性格診断
- [2]三目並べ
- [3]ライフゲーム
- [4]迷路の探索
- [5]ソリティアの解法
- [6]ナンバースライドの解法
- [7]覆面算の解法
- 5.6 英文テキストの処理
- [1]英文テキストのスタイル
- [2]単語の検索
- [3]文の検出
- [4]正規表現のマクロ
- 5.7 日本語テキストの処理
- [1]表形式での出力
- [2]文書整形
- [3]辞書による置換
- [4]対話的な文字列の置換
- 5.8 awkとプログラミング言語
- [1]言語の構文解析のレベル
- [2]括弧の対応
- [3]awkでlisp?
- [4]後置記法の数式電卓
- 5.9 1行エディタ
- [1]1行エディタの起動とコマンド入力形式
- [2]1行エディタのコマンド
- [3]使用例
- [4]プログラムの解説と拡張の指針
- Column
- 動的計画法
- 編集距離と生命情報工学
- マルコフモデルとマルコフ連鎖
- 関係データベースの正規化
- 階乗記数法と単純順列の列挙
- awkプログラムを作るコツ
- 前置記法と後置記法
- スタックとキュー
付録 gawkクイックリファレンス
- A.1 gawkの実行方法
- A.2 gawkで使用できるパターン
- A.3 アクションの中で使用できる文
- A.4 記号\でエスケープされた特殊文字
- A.5 特別な意味を持つ変数
- A.6 gawkで使える演算子
- A.7 配列の開放
- A.8 組み込み関数
- A.9 gawkで定義済みのファイル名
- A.10 gawkで使用する正規表現
- A.11 数学定数
- A.12 アスキーコード表
この本に関連する書籍
-
シェルプログラミング実用テクニック
月刊誌『Software Design』の2012年1月号~2013年12月号で連載していた「開眼シェルスクリプト」の内容を大幅に加筆/修正し,書籍にまとめました。 LinuxやUNIXのコマ...
-
データサイエンティスト養成読本 R活用編
注目の職種として脚光を浴びたデータサイエンティストですが,実際には多くの企業や組織で人材が不足しており,これにはいくつかの原因が考えられます。生まれて間もな...
-
サーバ/インフラエンジニア養成読本 ログ収集〜可視化編 [現場主導のデータ分析環境を構築!]
データ分析による継続的改善を目指す組織は,ビッグデータとも呼ばれる大規模化したログを分析部門に渡すまでのシステム構築を必要としています。提供するサービスを改...