DirectActionというJavaクラスがあるとしましょう。
クラスのいくつかのメソッドには「action」または「Action」という単語があります。
「Action」または「action」を含むすべてのメソッドの名前を取得して外部ファイルに書き込むgrepコマンドは何ですか?
例:
public class DirectAction extends ERXDirectAction {
/**
*
* @param aRequest
*/
public DirectAction(WORequest aRequest) {
}
// ============================================================================================
// ACTIONS
/**
* Default Action
*
*/
@docDirectAction
public WOActionResults defaultAction() {
}
/**
* @return goes to login page for student
*/
@docDirectAction
public WOActionResults studentAction() {
);
return nextPage;
}
/**
* @return goes to Admin login page
*/
@docDirectAction
public WOActionResults adminAction() {
return nextPage;
}
/**
* @return calls the AdminAction
*/
@docDirectAction
public WOActionResults staffAction() {
return adminAction();
}
}
私はただ次のような結果を得たいと思います。
public class DirectAction extends ERXDirectAction
public DirectAction(WORequest aRequest)
public WOActionResults defaultAction()
public WOActionResults studentAction()
public WOActionResults adminAction()
public WOActionResults staffAction()
注:これらすべての方法で唯一共通の単語は「Action」または「action」です。
可能であればgrepを使用してください:)
ベストアンサー1
(完全行ではなく)一致するテキストのみを返したい場合は、この-o
フラグが必要です。
grep -o 'public .*[a|A]ction.*)'
または、拡張正規表現を使用します。
grep -Eo 'public .*[aA]ction.*\)' file
または、pub(lic)、pri(vate)、またはpro(tected)で始まる行を展開します。
grep -Eo '^(pub|pri|pro).*[aA]ction.*\)' file