LEXTRA pattern [filename]* [option]*
行を正規検索し、一致した行を出力する
ファイルを複数指定すると、それらを順次処理する。
ファイル名を省略すると標準入力を処理する。
LEXTRA.EXE は従来からある LXTRA.EXE と同様の機能を持ち、モダンな正規検索表記を用いる。
#、!、@ がある場合は、
次の -M オプションを用いるか、
あるいは、パターンの先頭にダミーの \: を置くと良い。
-M)-M で指定したパターンは二番目以降となる。
-P)-Q)上記のいずれの方法も混用できるが、混乱を避けるため、混用は避けたほうが良い。
複数の条件を記述した場合は、OR 検索、または AND 検索が出来る。
標準では OR 検索を行う。
検定は条件の登場順に行い、条件が成立した時点で成立とする。
部分文字列の切り出しなどは最初に一致した条件に従って行う。
オプション(-AND)を指定すると AND 検索を行う。
検定は条件の登場順に行い、条件が全て成立した時点で成立とする。
部分文字列の切り出しなどは最後の条件に従って行う。
形式指定文字列は登場順に登録され、条件が成立したときのパターンの番号に対応する。 該当する形式指定文字列が無かった場合は、一番大きな番号の形式指定文字列を使用する。
全ての制御コードは出力しない。 制御コード以外の文字は以下にあげる文字を除いてそのまま出力される。
| \\ | '\' |
| \a | 制御文字 BELL(07h) |
| \b | 制御文字 BS(08h) |
| \B | '|' |
| \D | 複引用符 " |
| \e | 制御文字 ESC(1Bh) |
| \f | 制御文字 FF(0Ch) |
| \g | '>' |
| \l | '<' |
| \n | 制御文字 CRLF(0Dh,0Ah) |
| \r | 制御文字 出力しない |
| \s | 半角スペース |
| \S | 単引用符 ' |
| \t | 制御文字 TAB(09h) |
| \v | 制御文字 HM(0Bh) |
| \hnn | 1バイトコード |
| \xnnnn | 2バイトコード(JIS) |
| \I | 入力文字列の全体 |
| \0 | 一致文字列の全体 |
| \1-\9 | 部分文字列 |
| \=nn; | 部分文字列 |
| \=nn: | ログされた部分文字列のリスト |
| \=nn[ | 一致文字列の先頭から部分文字列の先頭まで。部分文字列がなければ何も出力しない |
| \=nn] | 部分文字列の末尾から一致文字列の末尾まで。部分文字列がなければ一致文字列 |
| \N | ファイル内行番号 |
| \L | 出力データ相対番号 |
| \F | ファイル名 |
| \[ | 一致文字列の前まで |
| \] | 一致文字列の後 |
| \/n,m/ | 指定番号の位置マークの間の文字列。n 省略では一致文字列の先頭、m 省略では一致文字列の末尾。 位置が逆転していると文字列を後ろから前に出力する。 |
| \(tsexpr) | tsexpr の結果。 |
部分文字列は、引数に部分文字列番号を入れて呼び出すが、??ustrmode / ?? markmode / ??topmode / ??botmode / ??logmode で機能を切り替えることが出来る。
未定義あるいは、値が決まらなかった部分文字列やマークは sysbool(n) の値が偽となる。
| sys(0) ??match |
一致文字列 | ||||||||||
| sys(n) | n は 1 以上。デフォルトでは、番号(n)に相当する部分文字列。 モードにより返す値が異なる
| ||||||||||
| sys(-1) ??str |
入力文字列の全体 | ||||||||||
| sys(-2) ??top |
一致文字列の先頭位置 | ||||||||||
| sys(-3) ??bot |
一致文字列の末尾位置 | ||||||||||
| sys(-4) ??strlen |
入力文字列の長さ | ||||||||||
| sys(-5) ??start |
検索開始位置 | ||||||||||
| sys(-6) ??levelmark |
レベルマークの値 | ||||||||||
| sys(-7) ??ustrcount |
部分文字列定義の数 | ||||||||||
| sys(-8) ??markcount |
マーク定義の数 | ||||||||||
| sys(-10) ??ustrmode |
部分文字列モードに切替 | ||||||||||
| sys(-11) ??markmode |
マーク位置モードに切替 | ||||||||||
| sys(-12) ??topmode |
部分文字列先頭位置モードに切替 | ||||||||||
| sys(-13) ??botmode |
部分文字列末尾位置モードに切替 | ||||||||||
| sys(-14) ??logmode |
部分文字列ログ出力モードに切替 | ||||||||||
| sys(-100) ??filename |
ファイル名 | ||||||||||
| sys(-101) ??ln |
ファイル内行番号 | ||||||||||
| sys(-102) ??ix |
出力データ相対番号 |
-1-AND-B-C[N]-CN パターンが一つ以上あるファイルのみ出力
-Estr-F-G-HSn-I-IF-L-LV-Mpattern-Ofilename-Pfilename-Qfilename-R[n]-R |
一致文字列を出力する |
-Rn |
部分文字列を出力する。nは部分文字列の番号 |
-S-T-U-U区切りコードはタブ(\t)-U; 区切りコードは改行(\r\n)-U:str 区切りコードを指定の文字列にする。
str は正規表現で書ける。
残念ながら \0 を書くとそこで文字列は終了してしまう。
-W[0n|n]| -W | 自由形式 | -W→「123」 |
| -Wn | 固定幅スペース埋めこみ | -W5→「 123」 |
| -W0n | 固定幅0埋めこみ | -W05→「00123」 |
-V-X-Z[N]\r\n ではなく、\n である。必要な場合は後ろに concat などをはさむこと。\n で参照すること。-ZN では、この補正を行わない。
このとき行番号の出力は正しくない。