| shakahshakah@gmail.com 2005-12-31, 2:51 am |
| friend_05 wrote:
> Hi,
>
>
> I want to extract some data from following file.xml
>
>
> can anyone suggest how can I do using AWK
> -------------------------------------------------------------------------=
--=AD------------------------------------------------------------
>
>
>
> name=3D"CVE-2005-0001" seq=3D"2005-0001"
> discovered=3D"2005-01-12" published=3D"2005-05-02" modified=3D"2005-10-20"
> severity=3D"High">
>
>
> name=3D"CVE-2005-0002" seq=3D"2005-0011"
> discovered=3D"2005-01-12" published=3D"2005-05-02" modified=3D"2005-10-20"
> severity=3D"High">
>
>
> name=3D"CVE-2005-0021" seq=3D"2005-0101"
> discovered=3D"2005-03-12" published=3D"2005-05-02" modified=3D"2005-10-20"
> severity=3D"low">
>
>
> name=3D"CVE-2005-0000" seq=3D"2005-1001"
> discovered=3D"2005-01-12" published=3D"2005-05-02" modified=3D"2005-10-20"
> severity=3D"medium">
>
>
> -------------------------------------------------------------------------=
--=AD------------------------------------------------------------
>
>
>
> I want the ouput in following manner.
>
>
> name severity
>
> CVE-2005-0001 High
> CVE-2005-0002 High
> CVE-2005-0021 low
> CVE-2005-0000 medium
If you really buy into the XML vision you can use XSL to get to a
reliable format on which to use awk, e.g. something like:
jc@sarah:~/tmp$ cat exploits.xml
<?xml version=3D"1.0" encoding=3D"ISO-8859-1"?>
<exploits>
<exploit
name=3D"CVE-2005-0001" seq=3D"2005-0001"
discovered=3D"2005-01-12" published=3D"2005-05-02" modified=3D"2005-10-20"
severity=3D"High"/>
<exploit
name=3D"CVE-2005-0002" seq=3D"2005-0011"
discovered=3D"2005-01-12" published=3D"2005-05-02" modified=3D"2005-10-20"
severity=3D"High"/>
<exploit
name=3D"CVE-2005-0021" seq=3D"2005-0101"
discovered=3D"2005-03-12" published=3D"2005-05-02" modified=3D"2005-10-20"
severity=3D"low"/>
<exploit
name=3D"CVE-2005-0000" seq=3D"2005-1001"
discovered=3D"2005-01-12" published=3D"2005-05-02" modified=3D"2005-10-20"
severity=3D"medium"/>
</exploits>
jc@sarah:~/tmp$ cat exploits-csv.xsl
<?xml version=3D"1.0" encoding=3D"ISO-8859-1"?>
<xsl:transform version=3D"1.0"
xmlns:xsl=3D"http://www.w3.org/1999/XSL/Transform">
<xsl:output method=3D"text"/>
<xsl:template match=3D"/">
<xsl:for-each select=3D"exploits/exploit">
<xsl:value-of select=3D"@name"/><xsl:text>,</xsl:text><xsl:value-of
select=3D"@severity"/>
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:template>
</xsl:transform>
jc@sarah:~/tmp$ xsltproc exploits-csv.xsl exploits.xml
CVE-2005-0001,High
CVE-2005-0002,High
CVE-2005-0021,low
CVE-2005-0000,medium
jc@sarah:~/tmp$ xsltproc exploits-csv.xsl exploits.xml \
> | awk 'BEGIN { FS=3D","; printf("name\tseverity\n") } { printf("%s\t%s\n"=
, $1, $2) }'
name severity
CVE-2005-0001 High
CVE-2005-0002 High
CVE-2005-0021 low
CVE-2005-0000 medium
|