超初心者用



Similar documents
_責)Wordトレ2-1章_斉

(1)1オールゼロ 記 録 ケース 厚 生 年 金 期 間 A B 及 びCに 係 る 旧 厚 生 年 金 保 険 法 の 老 齢 年 金 ( 以 下 旧 厚 老 という )の 受 給 者 に 時 効 特 例 法 施 行 後 厚 生 年 金 期 間 Dが 判 明 した Bは 事 業 所 記 号 が

01_07_01 データのインポート_エクスポート_1

Microsoft Word - 第3章.doc

PowerPoint Presentation

労働時間と休日は、労働条件のもっとも基本的なものの一つです

( 別 紙 ) 以 下 法 とあるのは 改 正 法 第 5 条 の 規 定 による 改 正 後 の 健 康 保 険 法 を 指 す ( 施 行 期 日 は 平 成 28 年 4 月 1 日 ) 1. 標 準 報 酬 月 額 の 等 級 区 分 の 追 加 について 問 1 法 改 正 により 追 加

2.4 箇 条 書 のスタイルを 変 更 する 右 クリックして 箇 条 書 と 番 号 付 け を 選 択 する. あとは 少 し 遊 べば, このようなことをやりたい 人 は 理 解 できると 思 います 3 いろいろな 入 力 ワープロを 使 う 上 で 肝 心 な 点 は, 空 白 調 整

4.5. < 参 加 表 明 書 を 提 出 する> 調 達 案 件 一 覧 の 表 示 対 象 となる 案 件 を 検 索 し 調 達 案 件 一 覧 に 表 示 させます 参 加 したい 案 件 の 調 達 案 件 名 称 行 - 入 札 参 加 資 格 確 認 申 請 / 技 術 資 料 /

[2] 控 除 限 度 額 繰 越 欠 損 金 を 有 する 法 人 において 欠 損 金 発 生 事 業 年 度 の 翌 事 業 年 度 以 後 の 欠 損 金 の 繰 越 控 除 にあ たっては 平 成 27 年 度 税 制 改 正 により 次 ページ 以 降 で 解 説 する の 特 例 (

目 次 1. 論 理 関 数 IF IF の 概 要 論 理 式 の 種 類 等 号 不 等 号 具 体 的 な 使 い 方 ネスト 複 数 の 条 件 を 記 述...

為 が 行 われるおそれがある 場 合 に 都 道 府 県 公 安 委 員 会 がその 指 定 暴 力 団 等 を 特 定 抗 争 指 定 暴 力 団 等 として 指 定 し その 所 属 する 指 定 暴 力 団 員 が 警 戒 区 域 内 において 暴 力 団 の 事 務 所 を 新 たに 設

Microsoft Word - P doc

Taro-1-14A記載例.jtd

(Microsoft PowerPoint - Ver12\203o\201[\203W\203\207\203\223\203A\203b\203v\216\221\227\277.ppt)

図 2 エクスポートによるシェープファイルの 新 規 保 存 新 規 保 存 するファイルは,より 分 かりやすい 名 前 をつけて 適 切 なフォルダ(shape フォル ダにまとめておくのがよい) 上 に 保 存 しておく 2 / 10

東近江行政組合職員の育児休業等に関する条例

養 老 保 険 の 減 額 払 済 保 険 への 変 更 1. 設 例 会 社 が 役 員 を 被 保 険 者 とし 死 亡 保 険 金 及 び 満 期 保 険 金 のいずれも 会 社 を 受 取 人 とする 養 老 保 険 に 加 入 してい る 場 合 を 解 説 します 資 金 繰 りの 都

TIPS - 棚 割 りを 開 始 するまで Liteを 起 動 し 企 業 情 報 の 追 加 を 行 い 棚 割 を 行 う 企 業 の 追 加 をして 下 さい 企 業 情 報 の 追 加 時 に エラーメッセージが 表 示 された 場 合 別 途 TIPS トラブルが 発 生 した 場 合

第1章 簿記の一巡

「給与・年金の方」からの確定申告書作成編

「1 所得税及び復興特別所得税の確定申告書データをお持ちの方」からの更正の請求書・修正申告書作成編

治 験 実 施 管 理 システム NMGCP 向 け Excel 形 式 プロトコール 作 成 手 順 書 V4.0.3 対 応 版 第 1 版 株 式 会 社 富 士 通 アドバンストエンジニアリング All Rights Reserved,Copyright 株 式 会 社 富 士 通 アドバン

弁護士報酬規定(抜粋)

ez_meishi.ppt

公営住宅法施行令の一部を改正する政令―公営住宅法施行令例規整備*

KINGSOFT Office 2016 動 作 環 境 対 応 日 本 語 版 版 共 通 利 用 上 記 動 作 以 上 以 上 空 容 量 以 上 他 接 続 環 境 推 奨 必 要 2

以 下 に 手 順 の 流 れを 記 載 します 3ページ 以 降 で 各 項 目 の 手 順 を 説 明 します ( をクリックすると 該 当 ページにジャンプします ) また 4ページに 汎 用 データ 受 入 に 関 するよくあるお 問 い 合 わせをご 紹 介 しています Step (3ペー

(Microsoft Word - Excel\211\236\227p2\217\315.docx)

続 に 基 づく 一 般 競 争 ( 指 名 競 争 ) 参 加 資 格 の 再 認 定 を 受 けていること ) c) 会 社 更 生 法 に 基 づき 更 生 手 続 開 始 の 申 立 てがなされている 者 又 は 民 事 再 生 法 に 基 づき 再 生 手 続 開 始 の 申 立 てがなさ

役員退職手当規程

Ver 改 訂 日 付 改 訂 内 容 1

1.2. ご 利 用 環 境 推 奨 ブラウザ Internet Explorer Google Chrome(バージョン 32 時 点 で 動 作 確 認 済 み) Mozilla Firefox(バージョン 26 時 点 で 動 作 確 認 済 み) Safari 7

税金読本(8-5)特定口座と確定申告

月 経 過 日 等 といいます )まで( 継 続 して 毎 年 所 定 の 時 期 にされる 定 期 給 与 の 額 の 改 定 が3 月 経 過 日 等 後 にされることについて 特 別 の 事 情 があると 認 められる 場 合 にあっ ては 当 該 改 定 の 時 期 )にされた 定 期 給


答申第585号

1

1級 ワンポイント

解 答 編 第 4 章 条 件 による 分 岐 2 演 習 問 題 4.2 整 数 値 を 入 力 すると その 整 数 が 偶 数 か 奇 数 かを 答 えるプログラムを 作 りなさい ただし 1 ) if else 文 を 用 いて 作 ること この 問 題 は 本 当 に 簡 単 です しかし

MetaMoJi ClassRoom/ゼミナール 授業実施ガイド

Vol.7

<4D F736F F D2090C389AA8CA72D92F18F6F2D D F ED28CFC82AF91808DEC837D836A B E838B A815B816A2E646F6378>

<4D F736F F D204D46834E A6D92E8905C8D905F93B193FC819593FA8E9F95D C5292E646F63>

Microsoft Word - word_05.docx

1. アクセスする 2. 簡 易 検 索 画 面 (fig. 1) アクセスすると 最 初 に 出 る 画 面 です 検 索 語 入 力 ボックスにキーワードを 入 力 して 論 文 検 索 ボタンをクリックし ます 3. ボックス 下 部 のチェック 項

している 5. これに 対 して 親 会 社 の 持 分 変 動 による 差 額 を 資 本 剰 余 金 として 処 理 した 結 果 資 本 剰 余 金 残 高 が 負 の 値 となるような 場 合 の 取 扱 いの 明 確 化 を 求 めるコメントが 複 数 寄 せられた 6. コメントでは 親

2016 年 度 情 報 リテラシー 三 科 目 合 計 の 算 出 関 数 を 用 いて 各 教 科 の 平 均 点 と 最 高 点 を 求 めることにする この2つの 計 算 は [ホーム]タブのコマ ンドにも 用 意 されているが 今 回 は 関 数 として 作 成 する まず 表 に 三 科

1 林 地 台 帳 整 備 マニュアル( 案 )について 林 地 台 帳 整 備 マニュアル( 案 )の 構 成 構 成 記 載 内 容 第 1 章 はじめに 本 マニュアルの 目 的 記 載 内 容 について 説 明 しています 第 2 章 第 3 章 第 4 章 第 5 章 第 6 章 林 地

<4D F736F F F696E74202D C90BF8F CC8DEC90AC97E181698A4F8D E8816A5F56322E707074>

<4D F736F F D20975A817C D9195DB8FD88F5A91EE838D815B F824F A2E646F63>

縦 計 横 計 をSUM 関 数 で 一 度 に 計 算 する 縦 横 の 合 計 を 表 示 するセルが 計 算 対 象 となる セルと 隣 接 している 場 合 は 一 度 に 合 計 を 求 め ることができます 1 計 算 対 象 となるセル 範 囲 と 合 計 を 表 示 する セル 範

目 次 1.はじめに 書 式 の 説 明 表 紙 スケジュール 組 入 れ 基 準 併 用 禁 止 薬 併 用 注 意 薬 同 種 同 効 薬 医 師 モニタリング..

2016 年 度 情 報 リテラシー 変 更 された 状 態 同 様 に 価 格 のセルを 書 式 設 定 する 場 合 は 金 額 のセルをすべて 選 択 し [ 書 式 ]のプルダウンメニューか ら[ 会 計 ]を 選 択 する すると が 追 加 され 金 額 としての 書 式 が 設 定 さ

賞 状 を 作 ってみよう 1- 賞 状 フォルダを 使 用 賞 状 のテンプレートから ワードで 賞 状 の 文 章 を 作 成 します あらかじめ EXCEL で 作 成 した 受 賞 者 の 名 簿 から 学 年 クラス 名 前 を 入 れて 印 刷 します 1Excel の 賞 状 名 簿.

スライド 1

Taro-2220(修正).jtd

<4D F736F F F696E74202D B D E90E096BE89EF8E9197BF2E >

< 目 次 > 8. 雇 用 保 険 高 年 齢 雇 用 継 続 給 付 27 ( 育 児 休 業 給 付 介 護 休 業 給 付 ) 8.1 高 年 齢 雇 用 継 続 給 付 画 面 のマイナンバー 設 定 高 年 齢 雇 用 継 続 給 付 の 電 子 申 請 高

(Microsoft PowerPoint -

(Microsoft Word - Word\211\236\227p8\217\315.docx)

< C8EAE81698B4C93FC8FE382CC97AF88D38E968D CA8E86816A2E786C73>

から2.0の 範 囲 内 で 印 刷 局 の 業 務 実 績 に 対 する 評 価 に 応 じて 決 定 する 業 績 勘 案 率 を 乗 じた 額 とする ただし 第 6 条 第 1 項 及 び 第 7 条 後 段 の 規 定 によ り 引 き 続 き 在 職 したものとみなされた 者 の 退 職

役員退職金支給規程

Microsoft Word - WBT(PP応用編).docx

XML形式の電子報告書作成に当たっての留意事項

2 県 公 立 高 校 の 合 格 者 は このように 決 まる (1) 選 抜 の 仕 組 み 選 抜 の 資 料 選 抜 の 資 料 は 主 に 下 記 の3つがあり 全 高 校 で 使 用 する 共 通 の ものと 高 校 ごとに 決 めるものとがあります 1 学 力 検 査 ( 国 語 数

4-3-4共立蒲原総合病院組合職員の育児休業等に関する条例

給 与 支 払 報 告 書 ( 総 括 表 )の 書 き 方 給 与 支 払 報 告 書 ( 総 括 表 ) 宇 城 市 長 様 平 成 25 年 1 月 20 日 提 出 種 別 整 理 番 号 指 定 番 号 ( 宇 城 市 提 出 用 ) 給 与 の 支 払 期 間 平 成 24 年 1 月

( 別 途 調 査 様 式 1) 減 損 損 失 を 認 識 するに 至 った 経 緯 等 1 列 2 列 3 列 4 列 5 列 6 列 7 列 8 列 9 列 10 列 11 列 12 列 13 列 14 列 15 列 16 列 17 列 18 列 19 列 20 列 21 列 22 列 固 定

預 金 を 確 保 しつつ 資 金 調 達 手 段 も 確 保 する 収 益 性 を 示 す 指 標 として 営 業 利 益 率 を 採 用 し 営 業 利 益 率 の 目 安 となる 数 値 を 公 表 する 株 主 の 皆 様 への 還 元 については 持 続 的 な 成 長 による 配 当 可

マスミューチュアル 定 額 終 身 保 険 の 特 徴 としくみ Point 1 健 康 状 態 の 告 知 は Point 2 ありません 固 定 利 率 で る 保 険 す 契 約 積 立 す * 被 保 険 者 が 入 院 中 の 場 合 など ご 加 入 いただけない 場 合 がございます

通 知 カード と 個 人 番 号 カード の 違 い 2 通 知 カード ( 紙 )/H27.10 個 人 番 号 カード (ICカード)/H28.1 様 式 (おもて) (うら) 作 成 交 付 主 な 記 載 事 項 全 国 ( 外 国 人 含 む)に 郵 送 で 配 布 希 望 者 に 交

財政再計算結果_色変更.indd


(Microsoft Word - \215u\213`\203m\201[\203g doc)

<4D F736F F D2091E F18CB48D C481698E7B90DD8F9590AC89DB816A2E646F63>

議案第   号

<4D F736F F D C93FA967B91E5906B8DD082D682CC91CE899E2E646F6378>

Microsoft Word - 311Tools_END

( 参 考 ) 国 家 戦 略 特 別 区 域 法 ( 平 成 25 年 法 律 第 107 号 )( 抄 ) 国 家 戦 略 特 別 区 域 法 及 び 構 造 改 革 特 別 区 域 法 の 一 部 を 改 正 する 法 律 ( 平 成 27 年 法 律 第 56 号 ) による 改 正 後 (

Microsoft PowerPoint - 総合型DB資料_県版基金説明用.pptx


図 1 抱 合 株 式 がない 場 合 の 非 適 格 合 併 により 増 加 する 資 本 金 等 の 額 の 計 算 合 併 法 人 株 式 の 価 額 - 移 転 純 資 産 価 額 (2) 合 併 法 人 株 式 等 のみなし 株 式 割 当 等 会 社 法 上 抱 合 株 式 には 合 併

表紙

1. 決 算 の 概 要 法 人 全 体 として 2,459 億 円 の 当 期 総 利 益 を 計 上 し 末 をもって 繰 越 欠 損 金 を 解 消 しています ( : 当 期 総 利 益 2,092 億 円 ) 中 期 計 画 における 収 支 改 善 項 目 に 関 して ( : 繰 越

郵 便 為 替 により 公 売 保 証 金 を 納 付 する 場 合 郵 便 為 替 証 書 は 発 効 日 から 起 算 して 175 日 を 経 過 していないものに 限 ります 4) 現 金 及 び 銀 行 振 出 の 小 切 手 で 平 川 市 に 直 接 納 付 銀 行 振 出 の 小 切

Taro-役員退職手当規程(H27.10改正)HP版

t検定

原薬等登録原簿(マスターファイル)制度について

郵 便 局 において 提 供 される 金 融 2 社 の 金 融 サービス 参 考 1 銀 行 サービス 2 保 険 サービス (*)は 銀 行 窓 口 業 務 ( 総 務 省 告 示 で 規 定 ) (*)は 保 険 窓 口 業 務 ( 総 務 省 告 示 で 規 定 ) ( 太 枠 内 を 総

振込データの作成

スライド 1

損 益 計 算 書 自. 平 成 26 年 4 月 1 日 至. 平 成 27 年 3 月 31 日 科 目 内 訳 金 額 千 円 千 円 営 業 収 益 6,167,402 委 託 者 報 酬 4,328,295 運 用 受 託 報 酬 1,839,106 営 業 費 用 3,911,389 一

取 り 消 された 後 当 該 産 前 の 休 業 又 は 出 産 に 係 る 子 若 しくは 同 号 に 規 定 する 承 認 に 係 る 子 が 死 亡 し 又 は 養 子 縁 組 等 により 職 員 と 別 居 することとなったこと (2) 育 児 休 業 をしている 職 員 が 休 職 又

2 / 18 ページ 第 13 講 データの 活 用 とデータマップの 作 成 13-1 ホームページの 保 存 ホームページ(Web ページ)に 表 示 される 様 々な 情 報 を ファイルとして 保 存 することができます

事前チェック提出用現況報告書作成ツール入力マニュアル(法人用)

H28記入説明書(納付金・調整金)8

Taro-07-1提言概要.jtd

2 役 員 の 報 酬 等 の 支 給 状 況 平 成 27 年 度 年 間 報 酬 等 の 総 額 就 任 退 任 の 状 況 役 名 報 酬 ( 給 与 ) 賞 与 その 他 ( 内 容 ) 就 任 退 任 2,142 ( 地 域 手 当 ) 17,205 11,580 3,311 4 月 1

Transcription:

初 心 者 用 awk 講 座 第 2 版 2000 年 2 月 25 日 文 責 斎 藤 輪 太 郎

1.はじめに awk はテキスト 処 理 言 語 です 与 えられたテキストファイル(cat や more で 中 味 を 見 ること ができるファイル)を 加 工 して 出 力 する 時 に 大 変 便 利 です このテキストではいくつかの 例 題 をこなしながら awk をある 程 度 使 えるようになることを 目 指 します 2. 行 単 位 の 処 理 の 基 本 以 下 のようなファイルを 作 ってみましょう ファイル 名 を food.txt とします I like an apple. He ate a banana. I cooked some corn. She has some donuts 次 に 以 下 のような awk スクリプトを 書 いてみましょう ファイル 名 を eat.awk とします /apple/ { print $0 Ringo!! } /corn/ { print $0 Toumorokoshi!!! } そして 以 下 のようにして awk を 起 動 します awk f eat.awk food.txt この 場 合 food.txt に 対 して eat.awk の 処 理 が 行 われます 以 下 のような 出 力 が 得 られまし たか? I like an apple...ringo!!! I cooked some corn...toumorokoshi!!! awk は 一 般 的 に 次 のような 形 式 をしています / 検 索 対 象 の 文 字 列 1/ { 文 字 列 1 があった 行 に 対 する 処 理 } / 検 索 対 象 の 文 字 列 2/ { 文 字 列 2 があった 行 に 対 する 処 理 } / 検 索 対 象 の 文 字 列 n/ { 文 字 列 n があった 行 に 対 する 処 理 } そして 次 のような 処 理 が 行 われます 1. 入 力 ファイル( 例 では food.txt)が 一 行 読 み 込 まれます 2.その 一 行 の 中 に 文 字 列 1~n がないか 調 べられます もし 文 字 列 が 見 つかればそれに 対 応 する 処 理 が 行 われます 3. 次 の 一 行 を 読 み 込 んで 同 じ 処 理 を 繰 り 返 します(1 に 戻 る) 2

入 力 ファイル awkスクリプト I like an apple. He ate a banana I cooked some corn She has some donuts. 一 行 ずつ 読 み 込 み /apple/ { print $0} /corn/ { print $0} 検 索 文 字 ハ ターン 検 索 文 字 ハ ターンにマッチした 時 の 処 理 では 先 ほどのスクリプトをみてみましょう /apple/ { print $0 Ringo!! } /corn/ { print $0 Toumorokoshi!!! } 1 行 目 は 読 み 込 んだ 行 に apple という 文 字 列 が 含 まれていたら その 行 ($0 で 表 す) と.Ringo!! を 表 示 させる 文 です 2 行 目 は 読 み 込 んだ 行 に corn という 文 字 列 が 含 まれていたら その 行 ($0 で 表 す) と.Toumorokoshi!!! を 表 示 させる 文 です 課 題 スクリプトファイルを 以 下 のように 変 えて 実 行 してみましょう /apple/ { print $4 Ringo!! } /corn/ { print $4 Toumorokoshi!!! } $4 は 処 理 中 の 行 の 4 番 目 の 単 語 を 表 します 課 題 スクリプトファイルを 以 下 のように 変 えて 実 行 してみましょう /some/ { print Ikutsukano $4} 3.BEGIN と END スクリプトを 実 行 する 前 の 初 期 設 定 を BEGIN の 中 に スクリプトが 終 了 したときの 処 理 を END の 中 に 書 く 事 ができます 以 下 のスクリプトを 実 行 してみましょう 入 力 ファイルは なんでもかまいません BEGIN { line_counter = 0 } { line_counter ++ } END { print line_counter } 3

入 力 ファイルの 行 数 が 表 示 されましたか? Awk ではC 言 語 などと 同 様 に 変 数 が 使 えます(C 言 語 の int line_counter;のようにあらか じめ 宣 言 する 必 要 はありません ) 1 行 目 で 行 数 を 数 える 変 数 line_counter を 0 にセットします 2 行 目 で 行 数 を 一 行 ずつカウントしていきます(++は line_counter の 値 を 1 つ 増 やすという 意 味 です) この 例 では / 検 索 対 象 の 文 字 列 / が 省 略 されています これを 省 略 すると 全 ての 行 が 処 理 の 対 象 となります 3 行 目 で 最 後 に 行 数 を 出 力 します 課 題 てきとうに 英 文 のテキストファイルを 作 りましょう( 少 し 長 めに) 次 に the という 単 語 が 含 まれる 行 数 をカウントするような awk スクリプトを 作 成 しましょう 4.コマンドラインからの 引 数 の 受 け 渡 し awk ではコマンドライン(awk 起 動 時 )に 変 数 = 値 の 形 があると この 変 数 が awk のスク リプトに 渡 されます 以 下 のような 一 行 のスクリプトを 書 いてみましょう このファイル 名 を p1.awk とします { print param1 $0 } 次 にこれを 以 下 のように 実 行 してみましょう awk f p1.awk param1= >> 入 力 ファイル 名 全 ての 入 力 ファイルの 行 の 先 頭 に >> が 付 けられるのが 分 かると 思 います 上 の 例 では コマンドラインの param1= >> で param1 という 変 数 に>>が 代 入 され print param1 $0 で 全 ての 入 力 行 の 前 に>>が(1つスペースを 置 いて) 付 加 されるようになっています 課 題 上 の 例 を 参 考 に コマンドラインである 文 字 列 を 受 け 取 り 全 ての 入 力 行 の 末 尾 に その 文 字 列 を 付 加 するようなスクリプトを 書 きましょう 5. 正 規 表 現 awk で 検 索 対 象 の 文 字 列 を 指 定 するときには 正 規 表 現 を 使 うことができます 正 規 表 現 は 簡 単 にかみくだいて 言 えば 1つの 表 現 で 複 数 のパターンを 指 定 できる 表 現 法 です(この 説 明 は 情 報 科 学 的 に 正 しいとはいえませんが) 例 えば 正 規 表 現 でma.eはmake,made,maleなど 複 数 のパターンを 表 します 正 規 表 現 を 使 うことによってパターンの 検 索 に 融 通 が 利 くようになるわけです ピリオド. は 任 意 の 一 文 字 を 表 します 正 規 表 現 の 例 をいくつか 挙 げておきます 4

^ 行 頭. 任 意 の1 文 字 [c 1 c 2..c n ] c 1 ~c n の 中 の 任 意 の 文 字 [^c 1 c 2..c n ] c 1 ~c n の 中 にない 任 意 の 文 字 r* r に 適 合 する 文 字 列 の 0 個 以 上 の 連 続. ピリオド( で 正 規 表 現 の 特 別 な 意 味 をなくす) ^The は 行 頭 の The にマッチします [acgt]は a,c,g,t の 任 意 の 一 文 字 にマッチします [acgt]*は a,c,g,t から 構 成 される 任 意 の 長 さの 文 字 列 ( 長 さ0も 含 む)にマッチします [a-z]はアルファベットの 小 文 字 にマッチします 課 題 英 単 語 The および the がある 行 を 表 示 するスクリプトを 書 きましょう 課 題 英 単 語 The が 先 頭 にある 行 を 表 示 するスクリプトを 書 きましょう The の 前 にスペ ースがあっても 許 すものとします 課 題 アルファベット 空 白 以 外 の 文 字 が 含 まれる 行 を 表 示 するスクリプトを 書 きましょ う 6.フィールドセパレータ $1,$2,$3 は 処 理 している 行 の1 番 目 の 単 語 2 番 目 の 単 語 3 番 目 の 単 語 を 表 していまし た より 正 確 に 言 えば 入 力 行 のスペースで 区 切 られた 部 分 が$1,$2,$3 の 境 目 になってい ました Awk ではこの 境 目 となるもの(フィールドセパレータ)を 変 えることができます 次 のテキストファイルを 作 って 下 さい ファイル 名 を names.txt とします Tetsuya Iida @ center @ 2 Atsunori Inaba @ right @ 41 Atsuya Furuta @ catcher @ 27 そして 次 のような awk スクリプトをつくってみましょう ファイル 名 を names.awk とし ます BEGIN { FS= @ } { print $2 } そしてこのスクリプトを 実 行 して 下 さい 次 のような 実 行 結 果 が 得 られるはずです center right catcher この 場 合 @ がフィールドセパレータになっています 従 って center の 列 が 第 2フィール ド($2)に 相 当 するのです なお BEGIN の 行 を 書 かなくても awk を 呼 ぶときに 5

awk F@ -f names.awk names.txt とすれば 同 じように @ がフィールドセパレータとなります 課 題 住 所 録 を3 人 分 ほど 作 ってみましょう 名 前 住 所 電 話 番 号 を, で 区 切 って1 行 に1 人 分 ずつ 書 き awk を 使 って 電 話 番 号 だけを3 人 分 表 示 してみましょう 7.awk 組 み 込 み 変 数 awk にはいくつかもとから 意 味 を 持 つ 変 数 があります 今 まで 何 気 なく 使 ってきた$0,$1,$2 などもそうです NR は 現 在 処 理 中 の 行 が 何 行 目 かを 表 します 次 のスクリプトを 見 てみま しょう { print NR $0 } これはテキストファイルの 中 味 を 行 番 号 付 きで 表 示 します 実 際 に 確 かめてみまし ょう print は 画 面 上 に 変 数 の 値 文 字 列 などを 出 力 する 命 令 ですが 変 数 と 文 字 列 (ダブルク オテーション で 囲 む)を 続 けて 書 くことができます 上 の 例 では 変 数 NR, 文 字 列 変 数 $0 の 中 味 が 続 けて 表 示 されます 変 数 NR を 使 って 偶 数 番 目 の 行 を 出 力 することもできます NR % 2 = = 0 { print $0 } NR % 2 = = 0 は NR を2で 割 った 余 りが0なら つまり 偶 数 なら という 条 件 文 です こ の 条 件 に 合 った 行 が 出 力 されることになります このように{ 処 理 }の 左 側 には 文 字 列 による 条 件 分 だけでなく 数 式 による 条 件 文 を 書 く ことができます 課 題 1 行 目 から 50 行 目 までを 行 番 号 付 きで 表 示 するスクリプトを 書 いてみましょう この 他 に 組 み 込 み 変 数 として NF(その 行 のフィールド 数 )などがあります 調 べてみましょ う 8.awk 組 み 込 み 関 数 awk にはいくつか 便 利 な 関 数 が 用 意 されています いくつかを 紹 介 しておきましょう gsub(r,s,t) 文 字 列 t の 中 で r に 適 合 するもの 全 てを s で 置 換 し 置 換 数 を 返 す ファイル 名 genome.awk { line = $0; 6

nsub = gsub( gene, genome, line); print line; print nsub; } コマンド 行 echo Analysis of the genes awk f genome.awk 1 このように echoなどのコマンドの 出 力 結 果 をパイプ でつないで awk への 入 力 とするこ とができます 実 行 結 果 Analysis of the genomes length(t) 文 字 列 t の 長 さを 返 す printf 書 式 に 従 って 文 字 列 や 数 値 を 表 示 する C 言 語 のものとよく 似 ているので 詳 しくは 各 自 調 べて 下 さい split(s,a,fs) fs をフィールドセパレータとして s を 配 列 a に 分 解 し できた 配 列 数 を 返 す s は a[1],a[2],a[3], に 分 解 される ファイル 名 skiing.awk { line = $0; split(line, array, - ); print array[3]; } コマンド 行 echo I-LIKE-SKIING-IN-WINTER awk f skiing.awk 実 行 結 果 SKIING substr(s,p,n) s の p 番 目 から 始 まる 長 さ n の 部 分 文 字 列 を 返 す ファイル 名 mothers.awk 7

{ print substr($0, 2, 5) } コマンド 行 echo Mothers awk f mothers.awk 実 行 結 果 other 課 題 ある 英 文 テキストファイルの 中 にアルファベット a,c,g,t がいくつずつ 含 まれている かを 表 示 する awk スクリプトを gsub を 使 って 書 きましょう 9. 配 列 substr 関 数 のところでちょっとでてきましたが awk では 配 列 変 数 を 使 うことができます 配 列 変 数 は 変 数 名 に 数 字 をつけた 変 数 で 似 たような 性 質 のデータを 一 元 的 に 管 理 できる ようになります 使 い 方 は 変 数 名 [ 整 数 ] で 例 えば line[2] = number 2 とすると line[2]に number 2 と いう 文 字 列 が 代 入 されます(C 言 語 のように 配 列 の 宣 言 をする 必 要 はありません) [ ]の 中 の 整 数 は 変 数 にすることもできます 例 えば i = 3; line[i] = number three とすれば line[3]の 中 に number three という 文 字 列 が 代 入 されます 10.if 文 if 文 はある 条 件 にあったときに 指 定 した 処 理 を 実 行 します 書 式 は 以 下 の 通 りです if ( 条 件 ) 条 件 に 合 ったときの 処 理 else 条 件 に 合 わなかったときの 処 理 省 略 可 偶 数 番 目 の 行 を 表 示 するスクリプトは NR % 2 = = 0 { print $0 } でしたが { if (NR % 2 = = 0)print $0 } と 書 いても 同 じように 処 理 されます また /the/ { print $0 } は { if ($0 ~ /the/) print $0 } と 同 じです 8

課 題 連 続 して 重 複 した 行 を1つにまとめて 出 力 するスクリプトを 書 きましょう I like driving. I like driving. I like playing soccer. I like playing soccer. I like playing soccer. ちょっと 難 しいと 思 われる 方 のためにヒントです たった 2 行 で 書 けるはずです NR = = 1 { prev = $0 ;..??..??.?.?} NR > 1{ if (prev!=?????.???? } 11 for 文 C 言 語 などでお 馴 染 みの for 文 が awk でも 使 えます for 文 はある 条 件 が 満 たされている 間 指 定 された 処 理 を 実 行 する 命 令 です 書 式 は 以 下 の 通 りです for( 初 期 設 定 ; 処 理 継 続 条 件 ; 更 新 処 理 ){ } 処 理 の 内 容 for 文 に 入 ったときに 最 初 に 初 期 設 定 が 実 行 されます 処 理 継 続 条 件 に 合 う 間 処 理 の 内 容 が 実 行 されます 処 理 の 内 容 を 終 えるたびに 更 新 処 理 が 実 行 されます 次 の awk スクリプトは 各 行 のフィールドを, で 分 けるように 加 工 して 出 力 します ファイル 名 sepat.awk { for(i = 1;i < NF;i ++){ printf( %s,, $i); } print $NF; } 入 力 ファイル 名 Bluebird 205PS Nissan Galant 205PS Mitsubishi Prelude 220PS Honda 9

Supra 280PS Toyota 実 行 結 果 Bluebird,205PS, Nissan Galant,205PS, Mitsubishi Prelude,220PS,Honda Supra,280PS,Toyota for(i = 1;i < NF;i ++)で i の 値 を 1 から NF( 一 行 のフィールド 数 )の 直 前 まで(NF-1 まで) 1 ずつ(i++) 増 やします printf( %s,, $i)で i 番 目 のフィールドが, とともに 出 力 されます 10

応 用 課 題 ある 文 字 列 を 見 つけたらその 行 と その 後 5 行 を 表 示 するスクリプトを 作 って 下 さい 解 法 ある 行 を 見 つけて 行 を(5 行 分 ) 表 示 中 であることを 示 す 変 数 (フラッグ)を 使 うと 便 利 です BEGIN{ to_print = 0; } / 検 索 文 字 列 / { to_print = 5; } to_print > 0 {??????????? } 応 用 課 題 ある 文 字 列 を 見 つけたらその 行 と その 前 5 行 を 表 示 するスクリプトを 作 って 下 さい 解 法 配 列 を 使 って 行 を 記 憶 していくと 便 利 です { for(i = 5;I > 0;I --)prevline[i] = prevline[i 1]; prevline[0] = $0; } 応 用 課 題 入 力 ファイルが 次 のような 構 成 になっていると 仮 定 します For sale Product = car レコード1 Premera 90 Price = 1,000,000 For rent Product = car レコード2 Legnum GDI Price = 10,000 / day For sale Product = motorcycle Zephyr 400 Price = 400,000 For sale Product = car Maclauren F1 Price = 90,000,000 (1) For sale のレコード 全 体 を 全 て 出 力 するスクリプトを 書 きましょう (2) Product が car のレコードを 全 て 出 力 するスクリプトを 書 きましょう 11