用于匹配多行语句的Linux脚本

时间:2014-06-30 11:10:39

标签: linux shell sed zsh multiline

如何编写快速shell脚本以匹配linux中的以下内容。我尝试了各种grep命令组合,sed命令但没有成功。 “消息”部分可以重复任意次。 “消息”本身的内容将是通用的,但固定为下面显示的格式。我希望输出类似于:

x: y
x1: y1
x: y
x1: y1
x: y
x1: y1

输入:

Posting to abcd
message {
 a {
     x : y
     x1 : y1
   }
}
message {
 a {
     x : y
     x1 : y1
   }
}
message {
 a {
     x : y
     x1 : y1
   }
}

1 个答案:

答案 0 :(得分:1)

这可能适合你(GNU sed):

sed '/^message {/,/^}/{/[{}]/d;s/^\s*//}' file

在块message {}中,删除包含{}的所有行,然后从后续行的开头删除任何空格。< / p>