Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 删除包含带sed的特定单词的段落_Linux_Bash_Command Line_Sed_Terminal - Fatal编程技术网

Linux 删除包含带sed的特定单词的段落

Linux 删除包含带sed的特定单词的段落,linux,bash,command-line,sed,terminal,Linux,Bash,Command Line,Sed,Terminal,我需要用sed命令删除包含“foobar”的函数, 可能使用另一个默认命令。我将把这个应用到很多文件中 main { engine "map" { func { var0 = foo border = { 1, 1, 1, 1 } var1 = bar } } engine "map" { func { var0 = foo border = { 1, 2, 1, 2 } var1 =

我需要用sed命令删除包含“foobar”的函数, 可能使用另一个默认命令。我将把这个应用到很多文件中

main {
  engine "map" {
    func {
      var0 = foo
      border = { 1, 1, 1, 1 }
      var1 = bar
    }
  }

  engine "map" {
    func {
      var0 = foo
      border = { 1, 2, 1, 2 }
      var1 = foobar
    }
  }

  engine "map" {
    func {
      var0 = foo
      border = { 3, 3, 1, 1 }
      var1 = bar
    }
  }
}

提前感谢您…

您可以将
awk
与空
RS
一起使用:

awk -v RS= -v ORS='\n\n' '!/foobar/' file
main {
  engine "map" {
    func {
      var0 = foo
      border = { 1, 1, 1, 1 }
      var1 = bar
    }
  }

  engine "map" {
    func {
      var0 = foo
      border = { 3, 3, 1, 1 }
      var1 = bar
    }
  }
}

您可以将
awk
与空
RS
一起使用:

awk -v RS= -v ORS='\n\n' '!/foobar/' file
main {
  engine "map" {
    func {
      var0 = foo
      border = { 1, 1, 1, 1 }
      var1 = bar
    }
  }

  engine "map" {
    func {
      var0 = foo
      border = { 3, 3, 1, 1 }
      var1 = bar
    }
  }
}

您可以类似地使用Perl:

perl-ne'BEGIN{$/=”“}除非/foobar/'文件打印


$/
是perl的记录分隔符。将其设置为
可启用段落模式。

您也可以使用Perl:

perl-ne'BEGIN{$/=”“}除非/foobar/'文件打印


$/
是perl的记录分隔符。将其设置为
可启用段落模式。

感谢您的快速回复,但sed无法做到这一点?使用sed可以做到这一点,但使用awk更容易快速回复,但使用sed无法做到这一点?使用sed可以做到,但使用awk更容易