awk の挙動メモ
(GAMMA)
awk の形式
awk ' パターン {アクション}'
- awk のコマンドは、シングルクォートで囲む。
- パターンは、条件式のようなもの。(アクションの中で条件式 IF を使うことも出来る)。
- アクションは、パターンを満たすときに実行される式。多くは、print (画面に表示) など。
入力ファイルがある場合の形式
awk ' パターン {アクション}' 入力ファイル
- 使用できるファイルには CSV のようなパターン化された表形式のテキストファイルが多い。
- awk を実行すると、先頭から 1行ずつ読み込まれ、パターンのチェック、OK ならばアクションが実行される。
- 入力ファイルの例:emp.data
---------------------- 1Beth 4.00 0 2Dan 3.75 0 3Kathy 4.00 10 4Mark 5.00 20 5Mary 5.50 22 6Susie 4.25 18 7Tom 6.00 15 8Mike 7.00 18
名前、時給、労働時間を表す。
サンプル
ダウンロード
Ex
- Ex1. 今月、労働時間が0だった人の名前をリストアップします。
- Ex2. 今月働いた人の名前と支払額の計算
- Ex3. コマンドの合体
- コマンドを合体するには、シングルクォートの中の awk 文同士を;(セミコロン)でつなぎます。
- 表示結果は、入力ファイルの1行目から順にパターン1,2を当てはめていき、満たす方の print 形式で表示される。
- 答えは、Ex1 と Ex2 を足した形になる。
- Ex4. 入力ファイルを分割する
- emp.data を上半分4行、下半分4行に分割し、file1.data, file2.data とする。
- 左側のファイルから順にシーケンシャルに処理する。
- 結果は Ex3 と同じ。
- Ex5. 入力ファイルの順番を逆にする。
- 今度は逆に、file2.data から先に処理される。
- (結論) 複数のファイルは、縦方向に連結されて左のファイルから順に処理される。
作成
株式会社オープン・ジー・アイ・エス