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
では、この補正を行わない。
このとき行番号の出力は正しくない。