ソース コードから情報を抽出して、他のユーザーが使用できる API を作成しようとしています。ファイルを grep して、共通のシグネチャを持つ変数のリストを取得することはできますが、一部の変数はポリモーフィックであるため、きれいに削除することはできません。
例えば:
public static Foo bar = new Foo(123, "Bar");
public static Foo baz = new Foo(222, "Baz");
public static FooBar fBar = new FooBar(135, "Foo", "Bar");
public static FooBaz fBaz = new FooBaz(256, "Baz", "Badger", "Baz");
次のように単純化したいと思います。
bar 123 Bar
baz 222 Baz
fBar 135 Bar
fBaz 256 Baz
現在、私はこれまでこれを行ってきました:
grep "public static Foo" file.java | tr '(' ' ' | tr ')' ' ' | sed "s/public\ static\ //g"
これは私にこれを与えます:
Foo bar = new Foo 123, "Bar" ;
Foo baz = new Foo 222, "Baz" ;
FooBar fBar = new FooBar 135, "Foo", "Bar" ;
FooBaz fBaz = new FooBaz 256, "Baz", "Badger", "Baz" ;
でチェーンしようとするとsed "s/Foo*\ //g"
、FooBar と FooBaz という単語が削除されません。どうすればこれを修正できますか?または、私がやりたいことを達成するためのよりエレガントな方法はありますか?