2017-06-22 18 views
0

タグとの間のテキストを取得しようとしています。私はSunOSと協力しています。2つのhtmlタグの間でテキストを抽出します。

 [SESSIONID=9sfhksfksafa,LOGINID=1,CLIENTIP=1.22.34.5,REMOTEADDRESS=1.22.34.5] 2017-06-01T18:09:20 INFO transaction - Soap Outbound message: <soapenv:Envelope xmlns:soapenv="http://org.inq"><Id>Id1</Id><header><userID>321</userID><organization>abc</organization><countryCode>CA</countryCode><languageCode>en</languageCode><userLocation>internet</userLocation> 
     <timestamp>2017-06-01T18:09:20.974-04:00</timestamp><channel>Mobile</channel> 

私は、次のオプションを試してみましたが、助けにはならなかった。

 sed -e 's/<Id>\(.*\)</Id>/\1/' 
     sed -n '/<Id>/,/<\/Id>/p' test1.txt > test2.txt 

任意の提案は非常に私を助けるだろう。

+0

サイトにはすでに何も質問と回答がありませんが、これはどのように行うべきかを教えてくれます。 –

答えて

2

のgrepはPCRE

grep -Po '<Id>\K[^<]*' 
そう

perl -ne 'print "$_\n" for /<Id>\K[^<]*/g' 

をサポートしている場合、別のオプションはbash

while IFS=\> read -d \< tag value; do echo "$tag $value"; done 

または変数は、文字列

var='<Id>2017-06-01T18:09:20.974-04:00</Id>' 
var=${var#*<Id>} #remove prefix 
var=${var%</Id>*} #remove suffix 
echo "$var" 
が含まれている場合
+0

あなたの提案をありがとう!しかしそれでも、タグ間のテキストは抽出されません。 – user3447653

+0

私はzcatを使って.zファイルを解凍しないようにしていますし、結果とsedをパイプしてみようとしています: zcat file1.Z | sed -n '/DserviceID/s/<\/serviceID.*//p'。しかし、私は空の結果を得るが、serviceIDタグの中に内容がある。 – user3447653

+0

あなたはファイルの断片を与えることができますか?何を試してみましたか? –

関連する問題