クラス Process_Grep
java.lang.Object
org.opengion.fukurou.process.AbstractProcess
org.opengion.fukurou.process.Process_Grep
- すべての実装されたインタフェース:
ChainProcess
,HybsProcess
Process_Grep は、上流から受け取った FileLineModelから、文字列を見つけ出す
ChainProcess インターフェースの実装クラスです。
正規表現の keyword を上流から受け取った FileLineModel から検索します。
見つかった対象ファイルから、指定の文字列を置換する場合は、-change か
-changeFile で、keyword を置換する文字列を指定して下さい。
置換する文字列には、\t と \n の特殊文字が使用できます。
処理対象は、通常は、1行づつ読み取りながら処理を行います。存在チェックの場合は、
見つかった時点で処理を中止します。これは、該当箇所をピックアップするのではなく、
存在しているかどうかを判断して、あれば、下流に流すというのが目的だからです。
keyword を、改行を含む正規表現で、検索・置換する場合は、-useBulkRead 属性を
true に設定してください。これは、入力ファイルを一括して読み込みます。
-ignoreCase は、検索時にキーの大文字小文字を無視するように指定します。
-notEquals は、結果(見つかればtrue)を反転(見つからなければtrue)します。
これは、行単位ではなく、ファイル単位に判定しますので、change 指定した場合
でも、対象行は、見つかった行です。ただし、下流に対して、見つからない
場合だけ処理を継続させます。
-inEncode は、入力ファイルのエンコード指定になります。
-outEncode は、出力ファイルのエンコードや、changeFileで指定の置換文字列ファイルの
エンコード指定になります。(changeFile は、必ず 出力ファイルと同じエンコードです。)
これらのエンコードが無指定の場合は、System.getProperty("file.encoding") で
求まる値を使用します。
-changeFile を使用することで、複数行の文字列に置換することが可能です。
-outfile では、処理を行ったファイル名一覧をセーブします。
上流(プロセスチェインのデータは上流から渡されます。)からのLineModel の
ファイルオブジェクトより、指定の文字列が含まれているか検索します。
上流プロセスでは、Name 属性として、『File』を持ち、値は、Fileオブジェクト
である、Process_FileSearch を使用するのが、便利です。それ以外のクラスを
使用する場合でも、Name属性と、File オブジェクトを持つ LineModel を受け渡し
できれば、使用可能です。
※ 6.3.1.1 (2015/07/10) useOmitCmnt、useAllFind 機能追加
引数文字列中に空白を含む場合は、ダブルコーテーション("") で括って下さい。
引数文字列の 『=』 の前後には、空白は挟めません。必ず、-key=value の様に
繋げてください。
※ 8.1.3.0 (2022/06/03) jarPrefix、jarSuffix、jarInstr、useRegexp、saveFile 追加
jar ファイルの中身も検索します。その際、jarファイルに圧縮されているファイル名での
絞り込みができるように、指定できる属性を追加します。
ただし、jarファイル内の検索は、useAllFind=true(置換ではなく検索だけ最後まで行う)のみです。
上流から jar ファイルが指定された場合は、常に検索対象になります。
- 形式サンプル:
- Process_Grep -keyword=検索文字列 -ignoreCase=true -outfile=OUTFILE -encode=UTF-8 -keyword=キーワード :検索する語句 [-ignoreCase=大文字小文字 ] :検索時に大文字小文字を区別しない(true)かどうか(初期値:区別する[false]) [-notEquals=判定結果の反転] :判定結果を反転させる(true)かどうか(初期値:反転させない[false]) [-inEncode=入力エンコード ] :入力ファイルのエンコードタイプ [-outEncode=出力エンコード ] :出力ファイルや置換ファイルのエンコードタイプ [-change=置換文字列 ] :-change="ABCD" \t や \n などの特殊文字が使用できます。 [-changeFile=置換ファイル ] :-changeFile=change.txt このファイルの記述すべてと置換します。 -change と、-changeFile は、同時に指定できません。 置換機能使用時は、必ず、_backup というファイルが作成されます。 [-insert=[HEAD/CHANGE/BEFORE/AFTER/TAIL] ] : 置換でなく挿入する場合の位置を指定します(初期値:CHANGE) スペースで区切って数字を記述すると、挿入位置にオフセットできます。 [-delete=[false/true] ] : 置換でなく削除します(初期値:false) [-skipRowCount=スキップ行数 ] : 先頭行から、スキップする行数を指定します(useBulkRead時には使用されません) [-useBackup=[false/true] ] :trueは、backupファイルを作成します(初期値:false) [-useBulkRead=[false/true]] :trueは、入力ファイルを一括読込します(初期値:false) [-useAllFind=[false/true] ] :置換ではなく検索だけ最後まで行う場合、trueを指定します(初期値:false) [-useOmitCmnt=[false/true]] :コメント部分を削除したファイルでgrep処理を行うかどうかを指定(初期値:false) [-errAbend=[true/false] ] :異常発生時に、処理を中断(true)するか、継続(false)するかを指定する(初期値:true[中断する]) [-jarPrefix=接頭辞 ] :File・・・・,View・・・・,など、指定の接頭辞で始まるjarファイルを中を検索 8.1.3.0 (2022/06/03) [-jarSuffix=接尾辞 ] :.txt|.java|.jsp.... など、指定の接尾辞で終わるjarファイルを中を検索 8.1.3.0 (2022/06/03) [-jarInstr=部分文字列 ] :jarファイルを中と一致する部分文字列を指定 8.1.3.0 (2022/06/03) [-useRegexp=[false/true] ] :trueは、正規表現で検索します(初期値:false) 8.1.3.0 (2022/06/03) [-saveFile=保存ファイル ] :検索結果を指定ファイルに保存します 8.1.3.0 (2022/06/03) [-display=[false/true] ] :trueは、検索状況を表示します(初期値:false) [-debug=[false/true] ] :デバッグ情報を標準出力に表示する(true)かしない(false)か(初期値:false[表示しない])
- 導入されたバージョン:
- JDK5.0,
-
フィールドの概要
クラスから継承されたフィールド org.opengion.fukurou.process.AbstractProcess
BUFFER_LARGE, BUFFER_MIDDLE, CHAIN_FILE_USAGE, CR, DB_BATCH_SIZE, DB_PARAM_USAGE, PROCESS_PARAM_USAGE, TAB
-
コンストラクタの概要
コンストラクタ -
メソッドの概要
修飾子とタイプメソッド説明引数の LineModel を処理するメソッドです。void
end
(boolean isOK) プロセスの終了を行います。void
init
(ParamProcess paramProcess) プロセスの初期化を行います。static void
このクラスは、main メソッドから実行できません。report()
プロセスの処理結果のレポート表現を返します。usage()
このクラスの使用方法を返します。クラスから継承されたメソッド org.opengion.fukurou.process.AbstractProcess
getArgument, logging, println, putArgument, putArgument, setLoggerProcess, throwException, throwException, toString
クラスから継承されたメソッド java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
インタフェースから継承されたメソッド org.opengion.fukurou.process.HybsProcess
logging, println, putArgument, putArgument, setLoggerProcess
-
コンストラクタの詳細
-
Process_Grep
public Process_Grep()デフォルトコンストラクター。 このクラスは、動的作成されます。デフォルトコンストラクターで、 super クラスに対して、必要な初期化を行っておきます。
-
-
メソッドの詳細
-
init
プロセスの初期化を行います。初めに一度だけ、呼び出されます。 初期処理(ファイルオープン、DBオープン等)に使用します。- 定義:
init
インタフェース内HybsProcess
- パラメータ:
paramProcess
- データベースの接続先情報などを持っているオブジェクト- 変更履歴:
- 6.3.1.0 (2015/06/28) errAbend属性追加。, 6.3.1.1 (2015/07/10) useOmitCmnt、useAllFind 機能追加, 8.1.3.0 (2022/06/03) jarファイル内の検索、オートエンコード対応
-
end
プロセスの終了を行います。最後に一度だけ、呼び出されます。 終了処理(ファイルクローズ、DBクローズ等)に使用します。- 定義:
end
インタフェース内HybsProcess
- パラメータ:
isOK
- トータルで、OKだったかどうか[true:成功/false:失敗]- 変更履歴:
- 8.1.3.0 (2022/06/03) jarファイル内の検索、オートエンコード対応
-
action
引数の LineModel を処理するメソッドです。 変換処理後の LineModel を返します。 後続処理を行わない場合(データのフィルタリングを行う場合)は、 null データを返します。つまり、null データは、後続処理を行わない フラグの代わりにも使用しています。 なお、変換処理後の LineModel と、オリジナルの LineModel が、 同一か、コピー(クローン)かは、各処理メソッド内で決めています。 ドキュメントに明記されていない場合は、副作用が問題になる場合は、 各処理ごとに自分でコピー(クローン)して下さい。- 定義:
action
インタフェース内ChainProcess
- パラメータ:
data
- オリジナルのLineModel- 戻り値:
- 処理変換後のLineModel
- 変更履歴:
- 4.0.1.0 (2007/12/14) ファイルの一括処理対応。, 5.7.2.2 (2014/01/24) エラー時にデータも出力します。, 6.3.1.0 (2015/06/28) errAbend属性追加。, 8.1.3.0 (2022/06/03) jarファイル内の検索、オートエンコード対応, 8.5.4.2 (2024/01/12) PMD 7.0.0 ExceptionAsFlowControl 対応
-
report
プロセスの処理結果のレポート表現を返します。 処理プログラム名、入力件数、出力件数などの情報です。 この文字列をそのまま、標準出力に出すことで、結果レポートと出来るような 形式で出してください。- 定義:
report
インタフェース内HybsProcess
- 戻り値:
- 処理結果のレポート
-
usage
このクラスの使用方法を返します。- 定義:
usage
インタフェース内HybsProcess
- 戻り値:
- このクラスの使用方法
- このメソッドは、nullを返しません
-
main
このクラスは、main メソッドから実行できません。- パラメータ:
args
- コマンド引数配列
-