uawk
名前
uawk: ユニケージ版 awk
書式
使い方とオプション
Usage
uawk [options] -f <pgfile> ... <file> uawk [options] <program> <file>
Option
-f <pgfile> --file <pgfile> -v <var>=<val> --assign <var>=<val>
説明
ユニケージに特化して高速化した awk です。入力ファイルは <file> のみです。<file> の指定が無いとき、あるいは “-” の時は、標準入力を読み込みます。
-f <pgfile> を指定した場合、プログラムは <pgfile> から読み込まれます。このオプションを指定しない場合、<program> をプログラムと扱います。
-v <var>=<val> を指定すると、変数 <var> の初期値を <val> にします。
両オプションともに複数個指定することができます。
実行時の注意
環境変数 AWKPATH はありません。入力ファイルは1つだけ指定できます。
<変数、レコード、フィールドについて> レコードの区切り ‘’ (変更できません) フィールドの区切り ’ ’ (変更できません)
組み込み変数
uawk の組み込み変数は以下のものだけです。
CONVFMT 数値の変換フォーマット。デフォルト値は "%.6g"。 IGNORECASE すべての正規表現と文字列操作において、大文字小文字を区別 するかどうか制御します。 IGNORECASE!=0 の場合、以下の場合に大文字と小文字の違いは 無視されます。 文字列比較 プログラムのパターンにおけるマッチ ~ 及び !~ による正規表現マッチ、 定義済み関数 gensub(), gsub(), index(), match(), sub() (例)/aB/ は "ab", "aB", "Ab", "AB" のいずれにもマッチ します。 初期値 0 (初期状態では、大文字と小文字は区別されます) NF 現在の入力レコードのレコード数。 NR 現在までに読み込んだ入力レコード数の合計。 OFMT 数字の出力フォーマット。デフォルト値は "%.6g"。 OFS 出力フィールドの区切り文字。デフォルト値は空白。 ORS 出力レコードの区切り文字。デフォルト値は改行。 RLENGTH match() によりマッチした文字列の長さ。 -1 はマッチしなかったことを示します。 RSTART match() によりマッチした最初の文字の位置。 0 はマッチしなかったことを示します。 SUBSEP 多次元配列を実現する際に用いられる、配列のインデックスを 結合する文字。デフォルト値は "\034" です。
変数について
awk/gawk とは異なり、指数表記(1.2e3 等)を数値と扱いません。変換時の丸めは四捨五入で行います。
正規表現について
awk/gawk とは異なり、REGEX(3) を用いています。
演算子について
| と |& はありません。gawkと同様に、^ ^= の代わりに、 ** **= も使用できます。
入出力文について
gawk と異なる文:
close(file) 第2引数(パイプ関連機能)無し
uawk では使えない文:
nextfile command | getline command | getline var print | command print expr-list | command system(cmd-line)
printf/sprintf 関数の変換指定書式について
%e, %E 使えません %g, %G awk/gawk と異なり常に %f 形式となります。 ただし、精度は有効数字桁数を表し、 整数部の桁数が精度以上の場合は小数点以下を丸めます。 後0は削除します。 count$ 使えません
特殊ファイル名について
特別な意味を持つファイル名はありません。(/dev/stdin 等は OS でサポートされています)
quit 文の追加
quit 文は exit 文と同様にプログラム実行を終了します。exit 文は入力の残りが有っても直ちに終了するため、パイプ詰まりによるシグナルが発生する可能性が有ります。一方、quit 文は入力を読み切って(読み捨てて)から終了するので、パイプ詰まりによるシグナルが発生しません。
数値関数
gawk と同じ関数:
exp(expr) 自然対数 e の expr 乗 int(expr) 整数への丸め(切り捨て) log(expr) 自然対数 sqrt(expr) 平方根
uawk では使えない関数:
atan2(x, y) cos(expr) rand() sin(expr) srand([expr])
uawk に追加した関数:
abs(expr) 絶対値 ceil(expr) 天井関数 floor(expr) 床関数 nearest(expr, prec) 小数点以下第 prec 位で最近値丸め round(expr, prec) 小数点以下第 prec 位で四捨五入 roundup(expr, prec) 小数点以下第 prec 位で切り上げ truncate(expr, prec) 小数点以下第 prec 位で切り捨て
数値および文字列関数
gawk と同じ関数:
asort 配列要素のソート asorti 配列添字のソート gensub 上書きしない文字列の置換 gsub 文字列の置換(全てを置換) index 文字列中の検索文字列位置を調べる length 文字列長を調べる match 正規表現パターンの適合位置 split 文字列の分割 sprintf 書式付文字列 strtonum 文字列を数値に変換 sub 文字列の置換(1回だけ置換) substr 部分文字列の切り出し tolower 小文字への置換 toupper 大文字への置換
uawk に追加した関数:
max(expr1, expr2, ...) 最大値 min(expr1, expr2, ...) 最小値 1つでも文字列の引数があれば文字列と して比較され、結果も文字列になります。 そうでなければ数値として比較され、結 果も数値になります。
時間関数について
uawk では使えない関数:
systime() strftime()
Version and Edition
Version : Wed Jan 13 10:39:42 JST 2021
Edition : 2
© 2021 Universal Shell Programming Laboratory site