如果我有看起来像这样的东西:
hello {sdsdsdsds} pattern {askjdasjkdjasd} hello {siadsd} pattern {iuewer}
因此,如果模式之前匹配{*}
,我需要添加一个;
.输出:
hello {sdsdsdsds} pattern {askjdasjkdjasd}; hello {siadsd} pattern {iuewer};
是的,这只是一行。
现在,我想到了这样的事情:
's{.*}/
但我不太清楚如何sed
记住 的内容.*
。
然后就是这个,
'/pattern\ {.*}/ s/$/;/'
但这是行不通的,因为它只有一行。
答案1
如果我正确理解你正在寻找的问题
sed 's/\(pattern {[^}]*}\)/\1;/g'
where\1
替换里面匹配的所有内容\(...\)
。
输出:
hello {sdsdsdsds} pattern {askjdasjkdjasd}; hello {siadsd} pattern {iuewer};