2013-05-29 103 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 
相關問題