【发布时间】:2012-05-25 20:15:39
【问题描述】:
我有一个文件,其内容如下:
control_data {
some data dadadadf
some data fsfsfs
some more data
.
.
.
}
more data below
{
.
.
}
我想删除“control_data”到第一个“}”的数据
我尝试了一个命令
sed "s/control_data\([^}]*\)}//g"
但这仅在我们没有多行时才有效,例如。当我们有如下数据时,此命令有效:
control_data {some data dadadadf some data fsfsfs some more data...}more data
它给出了:
more data {....}
当我们有跨多行的数据时如何使这个命令工作? 我是 shell 脚本的新手,一些带有答案的解释将大有帮助。
提前致谢。
【问题讨论】:
-
你可以使用 awk 还是只需要 sed 中的东西?
-
@Raghuram 我正在学习 sed,如果你可以用 sed 来做,那就太好了,否则 awk 也可以,但请给出答案并给出解释..谢谢
-
这个大括号语法可以嵌套吗?此语法是否可以包含
{含义已更改的字符(例如,在字符串文字内部,或以其他方式转义?可能有类似foo { bar { "nested{stuff" } }