式が特定のパターンと一致するC++コードベースから、 'if'ブロックをテキストファイルにコピーしようとしています。これはgrep/awk/sedなどの組み合わせを使って可能ですか?.cppファイルからパターンに一致する 'if'ブロックを抽出する
例
私のようなコードを含むファイルがある場合:私は含む//Code
ブロックで大丈夫
//OutputFile.txt
File1.cpp:
if(/*matching-expression-1*/)
{
//Code
}
File2.cpp:
if(/*matching-expression-2*/)
{
//Code
}
File3.cpp:
if((/*matching-expression-3*/)
{
if(/*non-matching-expression*/)
{
//Code
}
}
:
//File1.cpp
if(/*matching-expression-1*/)
{
//Code
}
//File2.cpp
if(/*non-matching-expression*/)
{
if(/*matching-expression-2*/)
{
//Code
}
}
//File3.cpp
if((/*matching-expression-3*/)
{
if(/*non-matching-expression*/)
{
//Code
}
}
が好きな私は、結果を取得したいと思いそれ以外の一致/不一致のブロックif
は、繰り返し入力する場合でも、タブインデントを保持する必要はありません。
grepを使って私が望む表現にマッチさせるのに問題はありませんが、それは私に「if」ブロックの開始点を含む行しか与えません(これは良いスタートです)。
ご協力いただければ幸いです。
不一致が一致する 'if'の内部にある場合はどうなりますか?それは '// Code'ですか? –
あなたはあなたのC++コードからマッチを削除したいということを意味するのでしょうか? – Markus
@JamesBrownその場合、私はそれを "コード"と考えています。実際には、中かっこの間に何かを見つけたいと思っています。 – AMackie