Nejsem ve skutečnosti obeznámen s regulárním výrazem, sed atd. a jsem trochu líný to v tuto chvíli zjistit, tak jak extrahuji tento řádek:
<yweather:astronomy sunrise="6:50 am" sunset="7:06 pm"/>
Dejte mi vědět, jestli je potřeba více struktury xml.
Přijatá odpověď:
Vzhledem k tomu, že vstupní data (váš soubor XML) jsou strukturovaná, je lepší použít dotaz na tato strukturovaná data, než s nimi zacházet jako s prostým textem a pohrávat si s regulárními výrazy.
Můžeme použít xmllint --xpath
k vyhodnocení výrazu XPath na vašem vstupu xml:
$ xmllint --xpath 'string(rss/channel/*[local-name()="astronomy"]/@sunrise)' weather.xml
6:48 am
– je to trochu zamotané, protože se musíme vypořádat s různými jmennými prostory v tomto souboru, ale přesto to funguje.
Další informace o XPath najdete ve specifikaci na http://www.w3.org/TR/xpath/