shell删除文件中格式化文本段

求一个脚本,一个文件中有很多段,特别注意这个行数不是固定的,如下:***字符串***{……{……{……}}}搜索文件中这个字符串删除掉这行,直到第三个}字符所在的行这种文... 求一个脚本,一个文件中有很多段,特别注意这个行数不是固定的,如下:
***字符串***{
……
{
……
{
……
}
}
}
搜索文件中这个字符串删除掉这行,直到第三个}字符所在的行

这种文字段行数不固定,只是肯定是在三个嵌套的{}里面,包括第一个{所在的行也要删除。我的目的是要遍历的字符串有很多,我放到一个文件列表里面,每次读一行字符串,到要操作的文件中找到包含这个字符串的所有段(每个段行数不固定,但是格式是固定的),然后删除。
展开
 我来答
albumin
2017-03-09 · TA获得超过1.2万个赞
知道大有可为答主
回答量:4889
采纳率:87%
帮助的人:2401万
展开全部
awk '/字符串/{
i=0
count=0 
do {
line[i++]=$0
count+=gsub("}","}")
}
while (count<3 && getline>0 )
next
}
{print}
END {if(count<3) for(j=0;j<i;j++) print line[j]}' 原始文件名 > 新文件名
mv 新文件名 原始文件名
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式