複数行のgrepを表示する方法

複数行のgrepを表示する方法

次のコードがあります。

int val

nameof_function();

上記のコードはfilename.txtファイルにあります。以下を使用して、ファイル内の一連の行を検索します。

grep "int val.*\n.*(" filename.txt

しかし、複数行では動作しません。

私も試しました

awk '/int val/,/\(/' filename.txt 

ここでは、出力にファイル名は表示されません。

grep出力でファイル名を見つけることができますが、次を使用すると複数行を検索できません。

次の出力が必要です。

filename.txt:int val nameof_function

誰でも助けてください

答え1

int valソースファイルに1行に分かれた機能が含まれている場合は、grepの出力を調整して下の2行の内容を見つけて出力するようにします。

次のようになります

grep -A 2 "int val" *.txt

関連情報