我希望使用sed
删除每个字符串中特定符号的第N个出现次数和最后一个第N个出现次数。例如,我想从下面的字符串中删除第一个和最后一个方括号。嵌套括号的数量是未知的,也可能是只有匹配时使用sed才能从字符串中删除第N个和最后一个第N个字符
[{串[子]串}]
或
[[[{串[子]串}] ]]
后SED应该离开
{串[子]串}
我尝试的replace up to nth match 和How to remove the last character from all lines but only if it is a certain character逻辑以下,但无法找到,对于嵌套括号的不明量工作的公式。
最坏的情况我可以递归地测试字符串以获取嵌套括号的数量,然后删除该字符数。这会是一个更好的方法,公式会是什么样子?我试图sed -r 's/.{2}//' -e 's/ .{2}$//'
没有运气
THX 艺术
谢谢@SandyElms的魅力。你能解释一下这个公式中发生了什么。我得到[*&\] *设置通配符第N个数字,但是{/ {/ do? – 2014-12-04 23:07:09