我有有一定的格式,只是这样的下一行的sed以某种方式
bla bla name1=WORD1 bla bla name2=WORD2 bla bla name3=WORD2
我想提取WORD1 WORD2 WORD3没有所有的喇嘛喇嘛和印刷制作线这个文本文件中写了一行他们用分号
WORD1;WORD2;WORD3
这可以使用只有sed?
我有有一定的格式,只是这样的下一行的sed以某种方式
bla bla name1=WORD1 bla bla name2=WORD2 bla bla name3=WORD2
我想提取WORD1 WORD2 WORD3没有所有的喇嘛喇嘛和印刷制作线这个文本文件中写了一行他们用分号
WORD1;WORD2;WORD3
这可以使用只有sed?
如果你在awk中被交叉,那么下面的代码就可以工作。
awk '{for(i=1;i<=NF;i++){if($i~/\=/){split($i,a,"=");if(p){p=p";"a[2]}else{p=a[2]}}}}END{print p}'
如下测试:
,处理不同的key=value
串
> echo "bla bla name1=WORD1 bla bla name2=WORD2 bla bla name3=WORD2" | awk '{for(i=1;i<=NF;i++){if($i~/\=/){split($i,a,"=");if(p){p=p";"a[2]}else{p=a[2]}}}}END{print p}'
WORD1;WORD2;WORD2
>
的一种方式。
假设infile
的内容:与内容
bla bla name1=WORD1 bla noname=WORD4 bla name2=WORD2 bla bla name3=WORD3
而且script.sed
:
## Add a newline character just before each word.
s/name[1-3]=\([^ ]*\)/\n\1/g;
## Remove all characters until each newline appended in previous command, so only
## words will be left, and insert a ';' between them.
s/[^\n]*\n\([^ ]*\)/\1;/g;
## Remove last ';'.
s/;[ ]*$//;
运行它想:
sed -f script.sed infile
国债收益率:
WORD1;WORD2;WORD3
你试过了什么? – Oussama