2016-11-15 45 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