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

便利な"一行野郎"

便利なawkプログラムは多くの場合、一行か二行程度の短いものだろう。ここ ではそういった、便利な短いプログラムを載せる。 (3) プログラムの中にはまだ説明されていないものが含まれているものがあるかもしれない。プログラムの記述はあなたに 自分もそういうものを書いてみようという気を起こさせるかもしれないが、ぞれはマ ニュアルの残りを読んで、 awkエキスパートになるまで待って欲しい。

awk '{ if (NF > max) max = NF }
END { print max }'
このプログラムは入力ファイル中の最大のフィールド番号を出力する。
awk 'length($0) > 80'
このプログラムは81キャラクタ以上ある行をすべて出力する。ただ一つあるルールは パターンとしての関係式を持ち、そしてアクションを持っていない(したがって デフォルトアクションであるレコードのプリントが行なわれる)。
awk 'NF > 0'
このプログラムは1つ以上のフィールドを持つ行を全て出力する。これは、ファイル から空白行を取り除く最も簡単な方法である (言い換えれば、あるファイルの空白行 を全て取り除いたファイルを作成するということ)。
awk '{ if (NF > 0) print }'
このプログラムも少なくとも一つのフィールドがある行を全て出力する。ここで、ル ールを全ての行にマッチするように記述しているが、アクションの中で出力するかど うかを判断している。
awk 'BEGIN { for (i = 1; i <= 7; i++)
print int(101 * rand()) }'
0以上100以下の乱数を7つ表示するプログラム。
ls -l files | awk '{ x += $4 } ; END { print "total bytes: " x }'
このプログラムはfilesの大きさの合計を出力する。
expand file | awk '{ if (x < length()) x = length() }
END { print "maximum line length is " x }'
このプログラムはfileの中で、最大の行の長さを出力する。入力はパイプを通 じてexpandプログラムによってタブがスペースに変換されたデータである。 それは、正しい行の長さで比較を行う為である。
awk 'BEGIN { FS = ":" }
{ print $1 | "sort" }' /etc/passwd
このプログラムは全てのユーザーのログイン名をソートしたリストを出力する。
awk '{ nlines++ }
END { print nlines }'
このプログラムはファイルの行数を数える。
awk 'END { print NR }'
これもファイルの行数を数えるが、行数のカウント作業をawkにやらせている。
awk '{ print NR, $0 }'
このプログラムは入力されたファイルに対して`cat -n'と同じ様に、行番号を 付け加える。

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