【发布时间】:2011-05-18 02:46:29
【问题描述】:
sed 手册明确指出,可用于替换字符串的可用反向引用编号为 \1 到 \9。我正在尝试解析一个包含 10 个字段的日志文件。
我已经为它形成了正则表达式,但第十场比赛(以及之后的任何比赛)都无法访问。
在 KSH(或任何我可以移植到 shell 脚本的语言)中,有没有人有一种优雅的方法来规避这个限制?
【问题讨论】:
-
您几乎可以使用任何脚本语言来编写单行代码。
perl -pe 's/yourregexhere/$1$2$3$4$5$6$7$8$9$10/' -
很有可能您可以使用不需要那么多反向引用的更简单的正则表达式。如果您显示一些示例数据和您想要的输出示例,我们可能会向您展示一种更简单的方法。
-
听起来像是
awk的工作——字段 10 是$10
标签: regex shell sed backreference