EXPRARG expr [filename]* [option]*
第一パラメータをTSEXPR式の連続として解釈して、
入力ファイルの各行に対して計算し、標準出力する。ファイル名を省略すると標準入力を扱う。
デフォルトでは、入力行をコマンドラインと同様のパラメータ展開を行って入力項目とする。
通常は間接展開を禁止しているので、空白区切りの項目取り出しとなる。「""」「''」の取り扱いは、コマンドラインと同じ。
EXPRARG.EXE
は要素から構成された行を取り扱う。この点は、タブで区切られた行を取り扱う EXPRTF.EXE
と同様であるが、行の構成を色々と選べるので、より柔軟な取り扱いができる。その分だけオプション指定がやや面倒になっている。
オプションを使用して入力行の解釈を変更すると、以下の形式を取り扱える。
行をコマンドラインパラメータと同様に展開する。デフォルト。 デフォルトではパラメータの間接展開がオフになっているので、半角スペース以下の(連続)コードを区切りとした、引用符、複引用符付きの項目解釈として扱える。 | ||
-D |
指定したコードを区切りコードとする。 | |
-K |
行内の半角スペース以下のコードを区切りとする。連続した空白も一つの区切りとして扱う。 | |
-C |
コンマで区切ったファイル。コンマを含む項目は「"」「"」で囲む。引用符で囲まれた中にある引用符の重合解釈をオフに出来る。 | |
-R |
区切りを正規表現で指定する。 | |
-U |
項目を正規検索表現で指定する。一致文字列が項目となる。 | |
-V |
正規検索表現で一行をあらわし、その部分文字列が項目となる。行と一致しなければ部分文字列が空となるので、一致するように書かなければならない。 |
{ TSEXPR式; }+
;
で区切って第一パラメータに出力式として記述する。アプリケーションインタフェースは次の通り
引数 | 略記 | 変数名 | 説明 |
---|---|---|---|
1 以上 | @n |
|
1から順に入力項目に対応 |
0 | &0 |
??gln |
通算行番号 |
-1 | &(-1) |
??ln |
ファイル内行番号 |
-2 | &(-2) |
??fn |
ファイル番号 |
-3 | &(-3) |
??filename |
処理中のファイル名 |
-4 | &(-4) |
??fc |
現在行の項目数 |
-10 | @(-10) |
??line |
現在行の全体 |
|
??print |
出力の許可状態を表す論理値。
行の計算式、初期化式などそれぞれの場合に固有である。
??print := bool 値 |
|
bool SPOOL(str 文字列 )
|
文字列を直接出力する。 |
オプション(-P)を指定すると、検定モードに出来る。
全体の処理の開始/終了時、入力ファイル処理の開始/終了時に評価する式をオプション指定できる。 評価の結果を出力できる。また、出力するか否かをオプション指定できる。
名称 | 式指定 オプション | 出力指定 オプション | デフォルト 出力 | 説明 |
---|---|---|---|---|
開始 | -I |
-SI |
× | 最初に評価。 |
終了 | -F |
-SF |
○ | 最後に評価 |
ファイル開始 | -B |
-SB |
○ | ファイルの開始時に評価 |
ファイル終了 | -E |
-SE |
○ | ファイルの終了時に評価 |
-B{tsexpr;}+
-C[S]
-D[str]
-E{tsexpr;}+
-F{tsexpr;}+
-I{tsexpr;}+
-J{S|C|L}
-JS | デフォルト。不要のコードを除去。LFを行末とみなす。CRは無視する。 |
-JC | コードの変更をしない。CRLFを行末として扱う。 |
-JL | コードの変更をしない。LFを行末として扱う。 |
-K
-Lstr
-M[I|F|X]*
I | 半角英字の大文字小文字を区別しない |
F | 半角全角英字の大文字小文字を区別しない |
X | スペース無視モード |
-NOEOL
-Ofilename
-P
-Rregstr
-S[+|-]
-SB[+|-]
-SE[+|-]
-SI[+|-]
-SF[+|-]
-SNON
-SALL
!^@#
)が有効。
-SNON
-SSTD
!^@
)が有効。
-S[!|^|@|#]*
! | !記述 |
^ | ^記述 |
@ | @記述 |
# | #記述 |
-Tstr
-Uregstr
-V
-Vregstr
-X
-Z
-D
で単純区切りコード指定モードで入力したとき、空行の項目数は0と解釈する。
exprarg "strconcix(??fc,tab,@(ix+1));"
Ver 1.02 | 2012/06/26 | -M が指定できなかった不具合を修正 -J で入力行のコードの取り扱いを指定できるようにした。 |
Ver 1.01 | 2012/04/30 | 初期化/終了化のコールバック修正 外部変数 ??print を追加 |
Ver 1.00 | 初版 |