Я пытаюсь извлечь информацию из исходного кода, чтобы создать API для других пользователей. Я могу grep файл, чтобы получить список переменных с общими сигнатурами, но некоторые переменные являются полиморфными, поэтому я не могу их очистить так же хорошо.Использование sed для удаления слов с общим префиксом
Например:
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. Как я могу исправить это? Или есть более элегантный способ добиться того, что я хочу сделать?
для конструктора , вы просто выбираете первый и последний параметр? – Kent