クラス Process_GrepChange
java.lang.Object
org.opengion.fukurou.process.AbstractProcess
org.opengion.fukurou.process.Process_GrepChange
- すべての実装されたインタフェース:
ChainProcess
,HybsProcess
Process_GrepChange は、上流から受け取った FileLineModelから、語句を
置換する、ChainProcess インターフェースの実装クラスです。
Process_Grep との違いは、チェックするファイルのコピーを(キーワードが存在
しなくとも)作成することと、検索キーに正規表現が使えない、複数行置き換えが
出来ないことです。
keywordFile より、置換する語句を含むキーと値のペアー(タブ区切り)を読取り、
対象とする語句を置換します。
keywordFile に、タブが含まれない行や、先頭にタブが存在している場合は、
その行を読み飛ばします。また、区切りタブは何個存在しても構いません。
置換文字(値)は、\t の特殊文字が使用できます。
この GrepChange では、語句に、正規表現は使用できません。正規表現のキーワード
や文字列を複数行の文字列と置き換える場合は、Process_Grep を使用してください。
このプログラムでは、上流から受け取った FileLineModel のファイルに対して、
6.3.1.1 (2015/07/10) 置き換えた結果も、同じファイルにセーブします。
元のファイルを保存したい場合は、予めバックアップを取得しておいてください。
-inEncode は、入力ファイルのエンコード指定になります。
-outEncode は、出力ファイルのエンコードや、キーワードファイルの
エンコード指定になります。(keywordFile は、必ず 出力ファイルと同じエンコードです。)
これらのエンコードが無指定の場合は、System.getProperty("file.encoding") で
求まる値を使用します。
5.7.3.2 (2014/02/28)
-regex=true で、キーワードに正規表現を利用できます。具体的には、String#replaceAll(String,String)
を利用して置換します。
通常の置換処理は、indexOf で見つけて、StringBuilder#replace(int,int,String) を繰り返して処理しています。
-ignoreCase=true で、検索キーワードに大文字小文字を区別しない処理が可能です。
6.3.1.1 (2015/07/10)
※ 出力ファイルを別フォルダにコピー置換する機能を追加します。
方法は、Process_FileCopy と同様、inPath と outPath を指定します。
※ useWordUnit="true" を指定すると、出来るだけ、Grep対象を、単語単位で置換しようとします。
具体的には、キーワード文字列の前後に、""(ダブルクオート)、''(シングルクオート)、><(タグ記号)、空白、改行を
付加して、それらを含めてマッチした場合のみ置換する方法を取ります。
※ 8.5.4.2 (2024/01/12) useOmitCmnt コメント除外追加
コメント除外は、isChange=false(置換しない)場合にのみ有効にします。
上流プロセスでは、Name 属性として、『File』を持ち、値は、Fileオブジェクト
である、Process_FileSearch を使用するのが、便利です。それ以外のクラスを
使用する場合でも、Name属性と、File オブジェクトを持つ LineModel を受け渡し
できれば、使用可能です。
引数文字列中にスペースを含む場合は、ダブルコーテーション("") で括って下さい。
引数文字列の 『=』 の前後には、スペースは挟めません。必ず、-key=value の様に
繋げてください。
Process_GrepChange -keyword=検索文字列 -ignoreCase=true -outfile=OUTFILE -encode=UTF-8
-keywordFile=キーワード :置換する語句を含むキーと値のペアー(タブ区切り)
[-ignoreCase=[false/true] ] :検索時に大文字小文字を区別しない(true)かどうか(初期値:false[区別する])
[-regex=[false/true] ] :キーワードに正規表現を利用する(true)かどうか(初期値:false[利用しない])
[-isChange=置換可否 ] :置換処理を実施する(true)かどうか(初期値:置換する[true])
[-useOmitCmnt=[false/true] ] :コメント部分を削除したファイルでgrep処理を行うかどうかを指定(初期値:false)
[-inPath=入力共通パス ] :上流で検索されたファイルパスの共通部分
[-inEncode=入力エンコード ] :入力ファイルのエンコードタイプ
[-outEncode=出力エンコード ] :出力ファイルやキーワードファイルのエンコードタイプ
[-outPath=出力共通パス ] :出力するファイルパスの共通部分
[-useWordUnit=単語単位置換 ] :出来るだけ、Grep対象を、単語単位で置換しようとします(初期値:false[部分置換])
[-errAbend=[true/false] ] :異常発生時に、処理を中断(true)するか、継続(false)するかを指定する(初期値:true[中断する])
[-display=[false/true] ] :結果を標準出力に表示する(true)かしない(false)か(初期値: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
-
コンストラクタの概要
コンストラクタ -
メソッドの概要
クラスから継承されたメソッド 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_GrepChange
public Process_GrepChange()デフォルトコンストラクター。 このクラスは、動的作成されます。デフォルトコンストラクターで、 super クラスに対して、必要な初期化を行っておきます。
-
-
メソッドの詳細
-
init
プロセスの初期化を行います。初めに一度だけ、呼び出されます。 初期処理(ファイルオープン、DBオープン等)に使用します。- 定義:
init
インタフェース内HybsProcess
- パラメータ:
paramProcess
- データベースの接続先情報などを持っているオブジェクト- 変更履歴:
- 5.1.2.0 (2010/01/01) 置換するかどうかを指定可能にする(isChange)属性追加, 5.7.3.2 (2014/02/28) debug の表示と、キーワードの \t の使用、trim() 廃止、ignoreCase の実装、regex の追加, 6.3.1.1 (2015/07/10) 出力ファイルを別フォルダにコピー置換する機能を追加, 6.3.1.1 (2015/07/10) useWordUnit="true" 時は、出来るだけ、Grep対象を、単語単位で置換しようとします, 6.4.5.1 (2016/04/28) FileStringのコンストラクター変更, 6.4.5.2 (2016/05/06) fukurou.util.FileString から、fukurou.util.FileUtil に移動。, 8.5.4.2 (2024/01/12) useOmitCmnt コメント除外追加
-
end
プロセスの終了を行います。最後に一度だけ、呼び出されます。 終了処理(ファイルクローズ、DBクローズ等)に使用します。- 定義:
end
インタフェース内HybsProcess
- パラメータ:
isOK
- トータルで、OKだったかどうか[true:成功/false:失敗]
-
action
引数の LineModel を処理するメソッドです。 変換処理後の LineModel を返します。 後続処理を行わない場合(データのフィルタリングを行う場合)は、 null データを返します。つまり、null データは、後続処理を行わない フラグの代わりにも使用しています。 なお、変換処理後の LineModel と、オリジナルの LineModel が、 同一か、コピー(クローン)かは、各処理メソッド内で決めています。 ドキュメントに明記されていない場合は、副作用が問題になる場合は、 各処理ごとに自分でコピー(クローン)して下さい。- 定義:
action
インタフェース内ChainProcess
- パラメータ:
data
- オリジナルのLineModel- 戻り値:
- 処理変換後のLineModel
- 変更履歴:
- 4.0.0.0 (2007/11/28) メソッドの戻り値をチェックします。, 5.1.2.0 (2010/01/01) 置換するかどうかを指定可能にする(isChange)属性追加, 5.7.2.2 (2014/01/24) エラー時にデータも出力します。, 5.7.3.2 (2014/02/28) debug の表示と、ignoreCase の実装, 6.3.1.0 (2015/06/28) nioを使用すると UTF-8とShuft-JISで、エラーになる。, 6.3.1.1 (2015/07/10) 出力ファイルを別フォルダにコピー置換する機能を追加, 6.3.1.1 (2015/07/10) useWordUnit="true" 時は、出来るだけ、Grep対象を、単語単位で置換しようとします
-
report
プロセスの処理結果のレポート表現を返します。 処理プログラム名、入力件数、出力件数などの情報です。 この文字列をそのまま、標準出力に出すことで、結果レポートと出来るような 形式で出してください。- 定義:
report
インタフェース内HybsProcess
- 戻り値:
- 処理結果のレポート
-
usage
このクラスの使用方法を返します。- 定義:
usage
インタフェース内HybsProcess
- 戻り値:
- このクラスの使用方法
- このメソッドは、nullを返しません
-
main
このクラスは、main メソッドから実行できません。- パラメータ:
args
- コマンド引数配列
-