【发布时间】:2013-12-30 19:56:08
【问题描述】:
我有一个大文件,在方括号中包含许多可变长度的数字列表实例,每行最多一个列表,列表永远不会为空,例如:
[1, 45, 54, 78] 或 [32]
我想去掉方括号和逗号,例如:
1 45 54 78 或 32
我可以成功地将它们与 sed 中的这个正则表达式匹配:
\\[\\([0-9]*\\)\\(, \\([0-9]*\\)\\)*\\]
但我不知道如何使用组号来指代我想要的组,例如正在做:
sed 's/\\t\[\\([0-9]*\\)\\(, \\([0-9]*\\)\\)*\\]/\\t\\1 \\3/g'
只会导致目标文件获取列表中的第一个和最后一个数字。
(我确实使用 awk 解决了我的问题,但我想知道是否可以使用 sed 来解决)
有没有办法在 sed 中引用可变数量的组?
【问题讨论】:
-
不明白如果每行只有一个匹配项,为什么会有“可变数量的组”?您能否展示您的
awk解决方案 - 也许这会解决问题。 -
如果同一文件中还有
[abc, foo]怎么办?
标签: regex list sed variable-length