嗨,我正在尝试为sed命令找出以下正则表达式

时间:2016-03-24 01:13:18

标签: regex linux sed

sed "s/\([0-9]\)-\([0-9]\)/\1\2/g" file

有人可以将其分解并解释运行时会发生什么。

感谢。

1 个答案:

答案 0 :(得分:2)

您的sed命令会删除两个数字之间的连字符(ie -)。

假设file的内容是

10-2
20-20
9-13

执行sed "s/\([0-9]\)-\([0-9]\)/\1\2/g" file会给你

102
2020
913

解读正则表达式:

[] - 用于范围
\(..\) - 用于分组,以便您可以使用\ 1表示第一个匹配\ 2表示第二个匹配,依此类推。