sed搜索一个正则表达式,返回另一个

时间:2013-05-29 14:55:22

标签: regex sed

我有以下csv文件:

hd1,100 
hd2,200

我想改变它,所以它的内容如下:

hard1drive,100
hard2drive,200

我认为sed可以提供帮助:

sed s'/hd[0-9]/hard[0-9]drive]/ < infile.csv

但是我没有得到所需的输出:

hard[0-9]drive,100
hard[0-9]drive,200

有什么方法可以从搜索参数中“捕获”数字并将其插入到sed中的replace参数中,或者我将不得不使用其他命令?

2 个答案:

答案 0 :(得分:4)

使用捕获组

 sed 's/hd\([0-9]\)/hard\1drive/'

答案 1 :(得分:0)

没有分组的

选项:

kent$  echo "hd1,100 
hd2,200"|sed 's/d[0-9]/ar&drive/'                                                                                                                                           
hard1drive,100 
hard2drive,200