1

pinboard.in API を使用して、現在のブックマークのリストを取得しています。結果は次のようになります。

<post href="https://www.nocc.meezy.com/doc/view.cgi?id=715" time="2013-02-11T17:38:10Z" description="Disk Errors Process Flow Chart" extended="" tag="nocc work" hash="a3419515b2e956e86886ba630b6028b7" meta="d793aeef6133a26e361695181eb57b9d"    />
<post href="https://www.nocc.meezy.com/doc/view.cgi?id=39" time="2013-02-11T17:38:08Z" description="Using socat" extended="" tag="socat work" hash="fd60523bf841b2b95674a0e1d4401f4d" meta="5f2b6ad395fe4da05b2987d199b675ea"    />
<post href="https://agora.meezy.com/wiki/Development_Tools" time="2013-02-11T17:38:06Z" description="Development Tools - meezyWiki" extended="" tag="devtools work" hash="dcf904433987a125c00a88bcaf31cad27" meta="5e744562282561390a0417223d323aee"    />

URL、説明、およびタグのみに関心があるため、結果を次のようにしたいと考えています。

https://www.nocc.meezy.com/doc/view.cgi?id=715 description="Disk Errors Process Flow Chart" tag="nocc work"  
https://www.nocc.meezy.com/doc/view.cgi?id=39 description="Using socat" extended="" tag="socat work"  
https://agora.meezy.com/wiki/Development_Tools description="Development Tools - meezyWiki" tag="devtools work

私は awk/cut/sed について少し知っていますが、説明とタグ フィールドにスペースと異なる数の文字列が含まれている場合にフィールドを正しくカウントする方法を教えるには十分ではありません。

私の人生がそれに依存している場合、私はおそらく本当にくだらない解決策を一緒にハックすることができますが、私よりもはるかによく知っている誰かから適切な解決策を得たいと思います.

ありがとう

4

1 に答える 1

1

regex/awk/sed .. で xml を扱うときは、リスクを知っておく必要があります。要件に合わせて sed ワンライナーを次に示します。

 sed -r 's/^.*"(http)/\1/; s/" time=.*( desc)/ \1/; s/extended=.*( tag=")/\1/; s/hash=.*//' file

あなたの例でテストしてください:

kent$  sed -r 's/^.*"(http)/\1/; s/" time=.*( desc)/ \1/; s/extended=.*( tag=")/\1/; s/hash=.*//' file
https://www.nocc.meezy.com/doc/view.cgi?id=715  description="Disk Errors Process Flow Chart"  tag="nocc work" 
https://www.nocc.meezy.com/doc/view.cgi?id=39  description="Using socat"  tag="socat work" 
https://agora.meezy.com/wiki/Development_Tools  description="Development Tools - meezyWiki"  tag="devtools work" 
于 2013-02-22T23:13:52.420 に答える