如何在递归中搜索任何只包含一个语句的if语句的目录?

时间:2017-11-24 09:20:32

标签: bash grep

E.g:

Time

我一直在尝试使用grep中的正则表达式和换行符,但我的结论是grep一次只能查看一行,那么我需要使用什么工具来搜索这些?

由于

1 个答案:

答案 0 :(得分:1)

您可以试试sed

sed -n '/^\s*if\s*(.*)/{N;/\s*{$/N; N;/}\s*$/p}' file

<强>测试

$ cat file
if ($bar) {
    $foo = 1;
}

if ($bar) {
    $foo = 1;
    $foo = 2;
}

if ($foo)
{
    $foo = 1;
}
if ($foo)
{
    $foo = 1;
    $foo = 2;
}

$ sed -n '/^\s*if\s*(.*)/{N;/\s*{$/N; N;/}\s*$/p}' file
if ($bar) {
    $foo = 1;
}
if ($foo)
{
    $foo = 1;
}