uspTukubaiコマンドに関する様々な資料がここにあります。

 

 

魂内検索

DOCUMENTS

COMMAND

FORUM

UEC DOCS

VIDEO

 

ABC順リスト |  カテゴリ別リスト

(動画教材準備中)

uawk

概要

uawk: ユニケージ版 awk

書式

Usage : uawk [options] -f <pgfile> ... <file>
uawk [options] <program> <file>
Options : -f <pgfile> --file <pgfile>
-v <var>=<val> --assign <var>=<val>
Version : Tue Jul 31 23:37:40 JST 2018
Edition : 2

説明

ユニケージに特化して高速化した awk です。入力ファイルは <file> のみ です。<file> の指定が無いとき、あるいは ""-"" の時は、標準入力を読み込 みます。
-f <pgfile> を指定した場合、プログラムは <pgfile> から読み込まれます。 このオプションを指定しない場合、<program> をプログラムと扱います。 -v <var>=<val> を指定すると、変数 <var> の初期値を <val> にします。両オプションともに複数個指定することができます。

実行時の注意

環境変数 AWKPATH はありません。 入力ファイルは1つだけ指定できます。

変数、レコード、フィールドについて

レコードの区切り '\n' (変更できません) フィールドの区切り ' ' (変更できません)

組み込み変数

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
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 位で切り捨て