2013-02-22 48 views
1

我正在使用pinboard.in API來獲取我當前書籤的列表。結果是這樣的:使用包含不同數量字段的行的awk/cut/sed

<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的一點點,但不足以告訴他們當描述和標記字段包含空格和不同數量的字符串時如何正確計數字段。

如果我的生活依賴它,我可能會破解一些非常糟糕的解決方案,但我更願意得到一個比我更瞭解他們的人的適當解決方案。

感謝

+1

最好不要嘗試解析XML與SED/AWK /切這是不正確的工具工作。這是XML;使用XML解析器。 – 2013-02-22 22:59:57

+0

雖然如上所述 - UNIX工具並不是解析XML的好選擇,但是我想你正在將它們寫入文本文件並嘗試列出這些URL? – user1428716 2013-02-22 23:05:59

回答

1

當你用正則表達式/ 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" 
相關問題