AWK の使用法 Last modified: Jan 27, 2016
I. Macintosh(Mac OS X)での使用法
- awk が標準でインストールされている。
- gawk は gawk-4.1.3.tar.gz をダウンロードし,インストールする。
- jgawk は gawk-3.0.6.tar.gz,gawk-3.0.6-mb1.15.diff.gz をダウンロードし,パッチを当てた後インストールする。
- awk -f 解析プログラムファイル名 データファイル名
結果は画面に出力される。
- awk -f 解析プログラムファイル名 データファイル名 > 結果の出力ファイル名
結果はファイルに出力される。
- awk -f 解析プログラムファイル名
入力データを必要としない場合。
- awk 'プログラム' データファイル名
解析プログラムが短い場合には,プログラムをファイルとして用意しなくてもよい。
例: awk '{sum += $1} END{print sum}' test.dat
- awk 'プログラム'
入力データを必要としない場合。
例: awk 'BEGIN{for (i = 1; i <= 10; i++) sum += i; print sum}'
- awk 'プログラム'
入力データを必要とする場合。
例: awk '/123/ {sum++} END {print sum}'
プログラムが起動された後,入力はコンソール(キーボード)から読み込まれる。Control+d が押されると入力は終了する。それまでに入力された行の内,"123" を含む行の数を出力する。
- コマンド | awk 'プログラム'
例:ls | awk '/\.awk/'
ls の結果を awk に渡し,".awk" を含むファイル名だけを表示する。
AWK プログラムはファイルに用意しておき,"-f 解析プログラムファイル名" として用いることもできる。
awk の代わりに,gawk あるいは jgawk とすれば,それぞれの AWK が起動される。
AWK プログラムへの入力は getline を使う場合もある。
II. 実行可能な AWK プログラム
たとえば,以下の内容を含む hello という名前のファイルを作る。
1 行目の #! に続く,/usr/local/bin/awk は,ユーザのシステムによっては異なることもあるが,コンソールに which awk と入力したときに出力される文字列である(awk がどこにあるかを示す)。
#! /usr/local/bin/awk -f
# a sample awk program
BEGIN { print "hello, world" }
さらに,このファイル hello を chmod により,実行可能にする。
その後,コンソールに hello と入力すれば,hello に書かれた AWK プログラムが実行される(コンソールに hello, world が表示される)。
直前のページへ戻る E-mail to Shigenobu AOKI