我有有一定的格式,只是這樣的下一行的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