使用SED从包含key = value对的CSV类文件中提取值

时间:2016-11-15 13:00:30

标签: shell sed

输入文件:

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

需要输出如下:

169930;240;403;RCFL2PKN;

试图这样做:

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

没有返回任何错误,但输出文件没有任何反应。

请帮忙。

1 个答案:

答案 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