Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 使用SED从由key=value对组成的类似CSV的文件中提取值_Shell_Sed - Fatal编程技术网

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