MEXTRA 行を正規検索し、すべての結果を出力する

書法

MEXTRA pattern [filename]* [option]*

SHELLMODE

@記述、!記述、#記述

詳細

行を正規検索し、一致した行を出力する。このコマンドは通常使用しない。
正規検索のすべての場合を尽くし、一致した文字列を行ごとに出力する。 ファイルを複数指定すると、それらを順次処理する。 ファイル名を省略すると標準入力を処理する。

検索パターン

正規検索そのものに付いては別途資料を参照すること。 検索は行単位で行う。

検索パターンの記述

検索パターンは以下の2種類の方法で記述できる。
  1. 第一パラメータ
    検索パターンが一つの場合は、通常この方法で記述する。 検索パターンの先頭に#!@がある場合は、 次の-Mオプションを用いるか、 あるいは、パターンの先頭にダミーの\:を置くと良い。
  2. オプション(-M
    直接コマンドラインにパターンを書ける。この方法で指定すると第一パラメータは無視する。

その他の指定

  1. 検索の際の大文字小文字の区別をしない指定ができる(-I)。
  2. 入力行の替わりに、一致文字列や部分文字列の出力を指定できる(-R)。 また、出力行を細かく指定して組み立てることができる(-E)。
  3. 入力文字列の出力を抑制できる(-X)。

形式指定文字列記述

オプション(-E)で指定する形式指定文字列について。
全ての制御コードは出力しない。 制御コード以外の文字は以下にあげる文字を除いてそのまま出力される。

\\<\>自身
\a制御文字 BELL(07h)
\b制御文字 BS(08h)
\e制御文字 ESC(1Bh)
\f制御文字 FF(0Ch)
\n制御文字 CRLF(0Dh,0Ah)
\r制御文字 出力しない
\t制御文字 TAB(09h)
\v制御文字 HM(0Bh)
\hnn1バイトコード
\xnnnn2バイトコード(JIS)
\I入力文字列の全体
\0一致文字列の全体
\1-\9部分文字列
\=nn;部分文字列
\=nn[一致文字列の先頭から部分文字列の先頭まで。部分文字列がなければ何も出力しない
\=nn]部分文字列の末尾から一致文字列の末尾まで。部分文字列がなければ一致文字列
\Fファイル名
\[一致文字列の前まで
\]一致文字列の後
\/n,m/指定番号の位置マークの間の文字列。 n省略では一致文字列の先頭、m省略では一致文字列の末尾。
位置が逆転していると文字列を後ろから前に出力する。
\(tsexpr)tsexprの結果。
sys関数は以下の機能を持つ。
部分文字列は、引数に部分文字列番号を入れて呼び出すが、sys(-10)からsys(-13)で機能を切り替えることが出来る。
未定義あるいは、値が決まらなかった部分文字列やマークはsysbool(n)の値が偽となる。
sys(0)一致文字列
sys(n)nは1以上。デフォルトでは、番号(n)に相当する部分文字列。
モードにより返す値が異なる
部分文字列モード番号に相当する部分文字列
マーク位置モード番号に相当するマークの位置
マーク位置先頭モード番号に相当する部分文字列の先頭
マーク位置末尾モード番号に相当する部分文字列の末尾
sys(-1)入力文字列の全体
sys(-2)一致文字列の先頭位置
sys(-3)一致文字列の末尾位置
sys(-4)入力文字列の長さ
sys(-5)検索開始位置
sys(-7)部分文字列定義の数
sys(-8)マーク定義の数
sys(-10)部分文字列モードに切替
sys(-11)マーク位置モードに切替
sys(-12)部分文字列先頭位置モードに切替
sys(-13)部分文字列末尾位置モードに切替
sys(-100) ファイル名
sys(-101) ファイル内行番号
sys(-102) 出力データ相対番号

OPTION

-Estr
出力行形式を細かく指定する
-HSn
スタックサイズを指定する(MBytes)。nは0-1024。省略するか、値が0なら無制限。デフォルトは10。
-I
半角の大文字と小文字の区別をしない
-IF
半角、全角の大文字と小文字を区別しない
-Mpattern
検索のパターンを追加指定する。
-Ofilename
指定のファイルへ出力を切り替える
-R[n]
入力データ行の代わりに一致した文字列、または、部分文字列を出力する。
-R 一致文字列を出力する
-Rn 部分文字列を出力する。nは部分文字列の番号
-S
検索パターンをスペース無視モードで解釈する。
この指定をすると検索パターン中の空白は無視する。また、#を書くと、行末までを注釈として扱う。
-X
入力データ行の内容を出力しない。
-Z[N]
ファイル全体を読みこんで1行として扱う。行番号は正しくない。
また、出力ファイルの改行が\r\nではなく、\nである。必要な場合は後ろにconcatなどをはさむこと。
パターンでは、ファイル内の行末は\nで参照すること。
通常、ファイル末に行末が無い場合は読み込みのときに行末を付加するが、-ZNでは、この補正を行わない。
このとき行番号の出力は正しくない。

用例

参考

正規検索正規検索記述
CEXTRA文字列の正規検索

バージョン

Ver 1.00初版