linux字符串替换问题,有点难度
我有一个字符串类似:
(1,1,{1,1},{1,1,{2,2},cco1{2,2},cbax[{2,2},{2,2}]},{ccp1[{2,2},{2,2}]})
这里面有大括号嵌套大括号, 我想做到的是将第二层大括号内的逗号,全部替换成 | 符号.
替换后效果如下:
(1,1,{1,1},{1,1,{2|2},cco1{2|2}|cbax[{2|2}|{2|2}]},{ccp1[{2|2}|{2|2}]})
这个shell应当如何写呢,我研究了好久, 求大神现身
说明一下,本例子中的1,2 数字只是为了方便查看我举的特例,实际可情况是可以为其它任何字母或数字
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
兄台没太看明白, 能说说思路吗
回复
维护一个计数器始终令'{'的数量与层数一致;若有两个,碰见','就替换
能说说思路吗
不知道 shell 里用栈的结构复杂不复杂,这个问题用栈很好解决。
ding ding
2这个值只是我举的例子,为了方便查看, 实际情况是不同的值
sed 's/{2,2}/{2|2}/g'