2013-05-29 68 views
0

我有以下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参数中,或者我将不得不使用另一个命令?

回答

4

使用捕获组

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

好极了,谢谢! – user2432988

+0

@ user2432988,如果答案适合您,请[接受它](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) – iruvar

0

选择不进行分组:

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