Javaメソッドのgrep

Javaメソッドのgrep

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

答え2

しかしgrep...

sed -n '\|DirectAction|{/^@/n;/{/s|||;p}'

私に次の結果を返します。

public class DirectAction extends ERXDirectAction
public DirectAction(WORequest aRequest)
public WOActionResults defaultAction()
public WOActionResults studentAction()
public WOActionResults adminAction()
public WOActionResults staffAction()

デフォルトでは、私はフレーズを含む行だけを処理しますDirectAction。その後、行の最初の文字があるかどうかを確認し@、その場合はn現在の行を次の行で上書きします。次に、1つを見つけて{見つかったら削除します。次にp印刷します。

答え3

grep -i action( <file>

-i検索大文字と小文字を区別しないでください。見たいすべての項目の最後に括弧があるように見えるので、最後に追加しましたが(省略できます。action

ちなみに、これはgrepマンページを読むと解決策をすぐに知ることができる最も簡単な使い方です。

関連情報