1

私は、アプリケーションにホワイト ラベルを付けて、当社や Web サイトなどへの参照が含まれないようにする任務を負っています。私が直面している問題は、探すべきさまざまなパターンがあり、すべてのパターンが削除されることを保証したいということです。アプリケーションは社内で (完全に) 開発されたわけではないため、messages.properties 内のオカレンスを単純に検索して実行することはできません。JSP、Java コード、および xml を確認する必要があります。

次のような結果をフィルタリングするために grep を使用しています。

grep SOME_PATTERN . -ir | grep -v import | grep -v // | grep -v /* ...

コマンドラインでパターンを使用すると、パターンがエスケープされます。ただし、このパターン マッチングはあまり堅牢ではないと思います。import が含まれている (可能性は低い) か、/* (javadoc コメントの先頭) が含まれている可能性があります。

画面に出力されるすべてのテキストは、どこかの文字列宣言または定数ファイルから取得する必要があります。したがって、次のようなものが見つかると想定できます。

public static final String SOME_CONSTANT = "SOME_PATTERN is currently unavailable";

その発生だけでなく、次のことを見つけたいと思います。

public static final String SOME_CONSTANT = "
SOME_PATTERN blah blah blah";

あるいは、内部クローラー / 自動テストがあれば、各ページから xhtml を取り出して、ソースをチェックしてクリーンであることを確認できます。

4

2 に答える 2

1

一部のオカレンスの欠落に関する懸念に対処するには、段階的にフィルタリングしてみませんか。

  1. 開始点として、考えられるすべての一致を含むテキスト ファイルを作成します。
  2. フィルター X (たとえば、'^import' の grep) を使用して、考えられる誤検知を tmp ファイルにダンプします。
  3. フィルター X を再度使用して、それらの一致を作業ファイル ([1] のコピー) から削除します。
  4. tmp ファイルのクイック ビジュアル パスを実行し、実際に一致するものを再度追加します。
  5. [2]~[4]を他のフィルターで繰り返します。

もちろん、これには少し時間がかかるかもしれませんが、これは間違っているとは思えません...

于 2009-11-23T21:07:01.237 に答える
0

grepではなくsedを使用します!Sedは、入力ストリームで基本的なテキスト変換を実行するために使用されます。sedコマンドでオプションを試してください。s/regexp/replacement/

awkコマンドを試すこともできます。フィールド分離用のオプション-Fがあり、 ;とともに使用できます。ファイルの行を;で区切る

ただし、最善の解決策は、PerlまたはPythonの単純なスクリプトです。

于 2009-11-23T20:48:43.800 に答える