Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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
Regex 使用sed删除所有文本_Regex_Sed_Awk - Fatal编程技术网

Regex 使用sed删除所有文本

Regex 使用sed删除所有文本,regex,sed,awk,Regex,Sed,Awk,格式: [标题]{}“UC(icl>限制)”(属性);(光泽) testme.txt文件有两行 [testme] {} "acetify" (V,lnk,CJNCT,AJ-V,VINT,VOO,VOO-CHNG,TMP,Vo) <H,0,0>; [newtest] {} "acid-fast" (ADJ,DES,QUAL,TTSM) <H,0,0>; 到目前为止,我取得的成就是: cat testme.txt | sed's/////g'| sed's/////g'|

格式:

[标题]{}“UC(icl>限制)”(属性);(光泽)

testme.txt文件有两行

[testme] {} "acetify" (V,lnk,CJNCT,AJ-V,VINT,VOO,VOO-CHNG,TMP,Vo) <H,0,0>; 
[newtest] {} "acid-fast" (ADJ,DES,QUAL,TTSM) <H,0,0>;
到目前为止,我取得的成就是:

cat testme.txt | sed's/////g'| sed's/////g'| sed's//{}/=/g'| sed's//\“//”

testme=acetify”(V、lnk、CJNCT、AJ-V、VINT、VOO、VOO-CHNG、TMP、Vo);
newtest=耐酸性”(形容词、DES、QUAL、TTSM);

如何删除从第二个“到行尾的所有文本?

删除双引号空格Open圆括号
”之后的所有内容(


删除双引号空格Open圆括号后的所有内容():


使用
awk
,整个过程可能会快一点:

awk 'NF > 0 { print $1 " = " $3 }' testme.txt | tr -d '[]"'

使用
awk
,整个过程可能会快一点:

awk 'NF > 0 { print $1 " = " $3 }' testme.txt | tr -d '[]"'

这是使用awk而不是所有那些不必要的
sed
命令的方式。您需要的是字段1和字段3。使用
gsub()
删除引号和括号

$ awk '{gsub(/\"/,"",$3);gsub(/\]|\[/,"",$1);print $1" = "$3}' file
testme = acetify
newtest = acid-fast

这是使用awk而不是所有那些不必要的
sed
命令的方式。您需要的是字段1和字段3。使用
gsub()
删除引号和括号

$ awk '{gsub(/\"/,"",$3);gsub(/\]|\[/,"",$1);print $1" = "$3}' file
testme = acetify
newtest = acid-fast

您对
sed
的整个多个调用序列可以替换为:

sed 's/\[\([^]]*\)][^"]*"\([^"]*\).*/\1 = \2/' inputfile

您对
sed
的整个多个调用序列可以替换为:

sed 's/\[\([^]]*\)][^"]*"\([^"]*\).*/\1 = \2/' inputfile