なんとな~くしあわせ?の日記

「そしてそれゆえ、知識そのものが力である」 (Nam et ipsa scientia potestas est.) 〜 フランシス・ベーコン

awk手習い

awkは便利と言いつつ、文法よくわからんのでサンプルコードを作ってみる。
参考サイト
AWK に関する基礎知識
The GNU Awk User's Guide - Table of Contents
AWKの文字列操作関数と関連機能 - AWK - to_dk notebook

#!/bin/sh

touch awk-test.txt
echo "a, b, c" >> awk-test.txt

awk '
BEGIN {
  print "test awk BEGIN!";
  FS = ",";
  countA = 0;
  countB = 0;
};

{
  print "test awk script!";
  v = sprintf("こんにちは。%d", NR);
  arrayA[countA++] = v;
  arrayB[countB++] = v;
};

END {
  print "test awk END!";
  for (i = 0; i < countA; i++) {
    print arrayA[i] " " arrayB[i];
  }
}' awk-test.txt

適当にシェルで書き込み用ファイルをタッチして文字列書き込んで配列宣言したりする。
awkは型の概念がないのかと思ったら内部的に持っているので、その辺無視すると予期した動きをしてくれない。