移動先 先頭, , , 末尾 セクション, 目次.

便利な一行野郎

多くの有用なawkプログラムは短く、一行か二行のものである。ここに集 めたのはそういった、便利で短いプログラムである。これらのプログラムのうち の幾つかは、まだ説明していない機能を使っている。プログラムの説明は何かを するための良いアイデアをあなたにもたらすだろうが、どうかこの マニュアルの残りを読んで欲しい。あなたがawkのエキスパートと なるために!

例の大部分は`data'という名前のデータファイルを使用している。これは 単なるプレースホルダー(placeholder)である。これらのプログラムを使う 場合、`data'を好きな名前に置き換えることができる。

awk '{ if (length($0) > max) max = length($0) }
END { print max }' data
このプログラムは入力行の中でもっとも長いものの長さを出力する。
awk 'length($0) > 80' data
このプログラムは80キャラクタを越えるの長さの行をすべて出力する。 このただ一つのルールはパターンとしての関係式を持ち、 アクションを持たない(したがって、デフォルトアクションである レコードの出力が適用される)。
expand data | awk '{ if (x < length()) x = length() }
END { print "maximum line length is " x }'
このプログラムは`data'中にある行の中でもっとも長いものの長さを 出力する。入力は、正しいカラム数で比較を行うために expandプログラムによってタブをスペースに展開される。
awk 'NF > 0' data
このプログラムは少なくとも一つのフィールドがある行をすべて 出力する。これはあるファイルから空行を取り除く (もしくは古いファイルから空行を除いた新しいファイルを作成する)。 簡単な方法である
awk 'BEGIN { for (i = 1; i <= 7; i++)
print int(101 * rand()) }'
このプログラムは0から100の間にある乱数を七つ出力する。
ls -lg files | awk '{ x += $5 } ; END { print "total bytes: " x }'
このプログラムはfilesが使用しているバイト単位の大きさの 合計を出力する。
ls -lg files | awk '{ x += $5 }
END { print "total K-bytes: " (x + 1023)/1024 }'
このプログラムはfilesが使っている領域の合計をキロバイト単位で出力する。
awk -F: '{ print $1 }' /etc/passwd | sort
このプログラムはすべてのユーザーのログイン名リストをソートして出力する。
awk 'END { print NR }' data
このプログラムはあるファイルの行数を数える。
awk 'NR % 2 == 0' data
このプログラムはデータファイルの偶数行を出力する。 `NR % 2 == 1'という式を使うと、奇数行を出力するようになる。

移動先 先頭, , , 末尾 セクション, 目次.