EXPRML expr [filename]* [option]*
第一パラメータをTSEXPR式の連続として解釈して、
入力ファイルの各レコードに対して計算し、標準出力する。
ファイル名を省略すると標準入力を扱う。
通常は式の値を常に出力するが、出力を抑制する検定モードを指定できる(-P
)。
ここで扱うレコードは、その要素が行で、複数行からなる。レコードの範囲は、デフォルトでは空行を区切りとする。
空行を区切りとする方法では、空行の連続は一つの空行と同じものとみなす。また、長さ0の行以外に、半角スペースだけの行も空行とする、あるいは、半角スペースと制御コードだけの行を空行とする指定が出来る。
{ TSEXPR式; }+
;
で区切って第一パラメータに記述する。引数 | 略記 | 変数名 | 説明 |
---|---|---|---|
0 | @0 |
??rec |
行を連結した文字列。各行末には0x0aが付いている。 |
1以上 | @n |
|
1から順に項目に対応 |
-1 | &(-1) |
??grn |
通算レコード番号 |
-2 | &(-2) |
??rn |
ファイル内レコード番号 |
-3 | &(-3) |
??fn |
ファイル番号 |
-4 | @(-4) |
??filename |
処理中のファイル名 |
-5 | &(-5) |
??fc |
項目数 |
|
??print |
出力の許可状態を表す論理値。
行の計算式、初期化式などそれぞれの場合に固有である。
??print := bool 値 |
標準では、各式の間に改行を挟み、さらに、レコード末では2回の改行を行う。すなわち、レコード末に空行を一つ挟む。また、レコード末の空行の出力は極力抑制される。
複数行をまとめた入力レコードは、以下の6種類の方法で決める(-M
)。
空行で区切る | -MZ -MS -MC
| デフォルトの処理である。一行以上の空行の連続をレコードの区切りとする。空行の定義法を指定するサブモードがある。
|
行数を指定 | -MFn |
指定した行数を1件のレコードにまとめる。
|
開始行と終了行を指定 | -MHexpr と-MTexpr |
|
開始行を指定 | -MHexpr |
|
終了行を指定 | -MTexpr |
|
条件にあった連続行を1件とする | -MEexpr |
|
開始行、終了行、連続行の判定に用いる tsexp は、論理値を返すものとする。
式記述の最後に「;
」を付加しないことに注意すること。
引数 | 略記 | 変数名 | 説明 |
---|---|---|---|
0 | @0 |
??line |
判定対象の行 |
-1 | &(-1) |
??grn |
通算レコード番号 |
-2 | &(-2) |
??rn |
ファイル内レコード番号 |
-3 | &(-3) |
??fn |
ファイル番号 |
-4 | @(-4) |
??filename |
処理中のファイル名 |
bool SPOOL(str 文字列 )
|
文字列を直接出力する。 |
-A{H|T}[+|-]
-AH+ | ヘッダーを含める。 |
-AH 、-AH- | ヘッダーを含めない。 |
-AT+ | トレイラーを含める。 |
-AT 、-AT- | トレイラーを含めない。 |
-ACstr
-MF
)でファイル末の半端な行を補完する。
補完する内容は str で指定できる。
-AF
-MF
)でファイル末の半端な行は無視する。
-B{tsexpr;}+
-E{tsexpr;}+
-F{tsexpr;}+
-I{tsexpr;}+
-L{S|C|L}
-LS | デフォルト。不要のコードを除去。LFを行末とみなす。CRは無視する。 |
-LC | コードの変更をしない。CRLFを行末として扱う。 |
-LL | コードの変更をしない。LFを行末として扱う。 |
-Mmode
-MC |
空行区切り。空行は長さ0の行。 |
-MS |
空行区切り。半角スペースだけの行も空行扱いする。 |
-MZ |
空行区切り。半角スペースと制御コードだけの行も空行扱いする。 |
-MFnum |
指定の行数 |
-MHbool式 |
TSEXPRが真である行を開始行とする。 |
-MTbool式 |
TSEXPRが真である行を終了行とする。 |
-MEbool式 |
TSEXPR式が真である連続行をまとめてレコードとする。 |
-NOEOL
-Ofilename
-P
-Rstr
-S[+|-]
-SB[+|-]
-SE[+|-]
-SI[+|-]
-SF[+|-]
-Tstr
-V
-X
Ver 1.04 | 2012/06/26 | -L で入力行の扱いを変更できるようにした。 |
Ver 1.03 | 2012/04/30 | 初期化/終了化でのcallback変更 外部変数 ??print を導入 |
Ver 1.02 | 2012/04/29 | 固定行モードで行の補完サポート |
Ver 1.01 | 2012/04/21 | 処理中断時の空読み処理を改善 |
Ver 1.00 | 初版 |