読者です 読者をやめる 読者になる 読者になる

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

ClojureとかAWSの設定とかをメモする技術ブログ

awk手習い

プログラミング 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は型の概念がないのかと思ったら内部的に持っているので、その辺無視すると予期した動きをしてくれない。