Go to the first, previous, next, last section, table of contents.

便利な"一行野郎"

1〜2行程度のawkプログラムが便利な場合がよくあります。下に、短くて便利なプログラムを掲載します。プログラムのなかには、まだ説明していない制御構造を含むものもあります。プログラムの説明を読めば、その動作がわかると思いますが、マニュアルの残りも読んでawkのエキスパートになってください!

awk '{ num_fields = num_fields + NF }'
END { print num_fields }'
すべての入力行のフィールド総数を表示します。
awk 'length($0) > 80'
80文字を超える行をすべて表示します。唯一のルールにはパターンとして関係式が使われています。アクションはありません(したがってデフォルトアクションであるレコードの表示が使われます)。
awk 'NF > 0'
1つ以上のフィールドを持つ行をすべて表示します。これはファイルから空行を削除する簡単な方法です(というよりも、あるファイルから空行を削除した新しいファイルを作る簡単な方法)。
awk '{ if (NF > 0) print }'
このプログラムも1つ以上のフィールドを持つ行をすべて表示します。このプログラムのルールはすべての行をマッチさせ、表示の有無をアクションの中で決定しています。
awk 'BEGIN { for (i = 1; i <= 7; i++)
print int(101 * rand()) }'
0〜100まで(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プログラムにパイプされています。したがって、比較される幅は実際は右マージンのカラムです。

Go to the first, previous, next, last section, table of contents.