2010-12-11 5 views
2

現在のディレクトリ構造に応じてカスタムパッケージでパッケージ行を変更する必要があるJavaソースファイルが多数あります。これらのファイルの中にはパッケージ行がないものがありますので、それらを置き換えることをお勧めします。linuxスクリプトを使用して、Javaソースファイルのパッケージ文を追加または置き換える方法

ソースファイルがディレクトリdirAにあり、現在のパッケージヘッダーがpackage mypackage.myimpl;であるとします。 package dirA;に変更したいと思います。ソースファイルにpackage文がまったくない場合は、package dirA;行を追加したいと思います。

sedまたはawkにエレガントな1つまたは2つのライナーがありますか?

答えて

3

と仮定します。$INFILEは、「パッケージルート」から変更するファイルの名前です(com.example.foo.Barはcom/example/foo/Bar.javaと呼ばれます)。あなたが望むことをやりなさい。

sed -i -e '/^package /d' -e '1,1 i package '"$(dirname "$INFILE" | sed -e 's:/:.:g');" $INFILE 

1つの大きな注意点は、packageステートメントをファイルの最初の行に挿入することです。

+0

ありがとうございました。 – Rich