オークawk は強力な文字列処理機能と、C 言語に似た文法を 併せ持つ言語処理系であるが、フィルターとしての性格を持ったコマンドなの で、ここで紹介しておく。
多分 C 言語を知っている人には、次のプログラムを理解するのは難しくな いであろう (別に今理解する必要はない)。行の先頭に ee880 というパ ターンを持つ行の第 1, 5, 7 フィールドを表示し、第7フィールドが /bin/csh である数を数え、割合を求めている。
#!/usr/meiji/gnu/bin/gawk -f
BEGIN {
FS = ":";
number = 0;
numofcsh = 0;
}
/^ee880/ {
printf("%s %20s, %s\n", $1, $5, $7);
number++;
if ($7 == "/bin/csh")
numofcsh++;
}
END {
printf("%d人中 csh を使っているのは %d 人 (%4.1f\%)です。\n",
number, numofcsh, 100.0 * numofcsh / number);
}
|
test.awk ee-listとする。