输入文件:
Test1=169930;Testing2=240;Tester3=403;Tests4=RCFL2PKN;
需要输出如下:
169930;240;403;RCFL2PKN;
试图这样做:
sed 's/(([A-Z][a-z]+)[=](^[0-9]+)[^;])//g'
没有返回任何错误,但输出文件没有任何反应。
请帮忙。
答案 0 :(得分: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