サイト内検索:
uawk: ユニケージ版 awk
使い方とオプション
uawk [options] -f <pgfile> ... <file>
uawk [options] <program> <file>
-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)
%e, %E 使えません
%g, %G awk/gawk と異なり常に %f 形式となります。
ただし、精度は有効数字桁数を表し、
整数部の桁数が精度以上の場合は小数点以下を丸めます。
後0は削除します。
count$ 使えません
特別な意味を持つファイル名はありません。(/dev/stdin 等は OS でサポートされています)
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 : Wed Jan 13 10:39:42 JST 2021
Edition : 2
© 2021 Universal Shell Programming Laboratory site