我想从表达式匹配特定模式的C++代码库中将任何'if'块复制到文本文件。这可能使用grep/awk/sed等的组合吗?从.cpp文件中提取匹配模式的'if'块
例
如果我有包含类似代码的文件:
//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
}
}
我希望得到这样的结果:
//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
}
}
我可以接受包含//Code
块其他匹配/不匹配if
块,即使这会导致重复输入,也无需保留制表符缩进。
我没有使用grep来匹配我想要的表达式,但只给了我包含'if'块的开始的行(这是一个好的开始!),但我不确定如何继续。
任何帮助都将不胜感激!
如果不匹配是在匹配的'if'内?这仅仅是“// Code”吗? –
通过提取你的意思是你想从你的C++代码中删除匹配? – Markus
@JamesBrown是的,在这种情况下,我只是认为它是“代码”,真的,我只是想在开始和结束括号之间找到任何东西 – AMackie