2016-11-15 44 views
1
值對

輸入文件:提取值=使用SED

Test1=169930;Testing2=240;Tester3=403;Tests4=RCFL2PKN; 

需要得到輸出,如:

169930;240;403;RCFL2PKN; 

試圖做這樣的:

sed 's/(([A-Z][a-z]+)[=](^[0-9]+)[^;])//g' 

沒有返回任何錯誤,但沒有發生輸出文件。

請幫忙。

回答

0
sed 's/[^=]\+=\([^;]\+;\?\)/\1/g' file 

basic regular expression syntax你應該寫\+\(\)\?代替+()?水漲船高。如果你覺得這句法不方便,你可以使用extended syntax

sed -r 's/[^=]+=([^;]+;?)/\1/g' file 

基本和擴展正則表達式的唯一區別是在幾個字符的行爲:?+,括號和括號({}

如果要在原地修改文件,請使用-i選項。如果要將結果輸出到另一個文件,請使用I/O重定向:

sed -r 's/[^=]+=([^;]+;?)/\1/g' file > outfile