Linux 删除包含带sed的特定单词的段落
我需要用sed命令删除包含“foobar”的函数, 可能使用另一个默认命令。我将把这个应用到很多文件中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 =
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更容易