Shell 使用SED从由key=value对组成的类似CSV的文件中提取值
输入文件:Shell 使用SED从由key=value对组成的类似CSV的文件中提取值,shell,sed,Shell,Sed,输入文件: Test1=169930;Testing2=240;Tester3=403;Tests4=RCFL2PKN; 需要获得如下输出: 169930;240;403;RCFL2PKN; 试着这样做: sed 's/(([A-Z][a-z]+)[=](^[0-9]+)[^;])//g' 未返回任何错误,但输出文件未发生任何错误 请帮忙 sed 's/[^=]\+=\([^;]\+;\?\)/\1/g' file 在中,您应该相应地编写\+,\(,\)和\?,而不是+,(,))和?。如
Test1=169930;Testing2=240;Tester3=403;Tests4=RCFL2PKN;
需要获得如下输出:
169930;240;403;RCFL2PKN;
试着这样做:
sed 's/(([A-Z][a-z]+)[=](^[0-9]+)[^;])//g'
未返回任何错误,但输出文件未发生任何错误
请帮忙
sed 's/[^=]\+=\([^;]\+;\?\)/\1/g' file
在中,您应该相应地编写\+
,\(
,\)
和\?
,而不是+
,(
,)
)和?
。如果您觉得此语法不方便,可以使用:
基本正则表达式和扩展正则表达式之间的唯一区别在于几个字符的行为:?
、+
、括号和大括号({}
)
如果要就地修改文件,请使用-i
选项。如果要将结果输出到另一个文件中,请使用I/O重定向:
sed -r 's/[^=]+=([^;]+;?)/\1/g' file > outfile
在中,您应该相应地编写\+
,\(
,\)
和\?
,而不是+
,(
,)
)和?
。如果您觉得此语法不方便,可以使用:
基本正则表达式和扩展正则表达式之间的唯一区别在于几个字符的行为:?
、+
、括号和大括号({}
)
如果要就地修改文件,请使用-i
选项。如果要将结果输出到另一个文件中,请使用I/O重定向:
sed -r 's/[^=]+=([^;]+;?)/\1/g' file > outfile