我有30个站点地图文件,如下所示:
<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.A.com/a</loc>
<lastmod>2013-08-01</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://www.A.com/b</loc>
<lastmod>2013-08-01</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
...
</urlset>
输出我想要每行四列每个url标签,打印到屏幕上
^{pr2}$我使用的方法是Python BeautifulSoup来解析标记,但是,性能非常慢,因为那里有30多个文件,每个文件有300000行。我想知道是否有可能使用一些shell AWK或SED来实现这一点,或者。。我只是用了错误的工具。在
由于站点地图的格式非常好,可能有一些正则表达式技巧可以绕过它。在
有谁有在AWK或SED中用多行而不是新行字符来划分记录/行的经验吗?在
非常感谢!在
这可能对您有用(GNU-sed):
收集模式空间中的
url
行,用空格替换标记,并删除前导空格和尾随空格。删除所有其他行。在如果您知道
^{pr2}$url
标记之间只有4行:sed是一个很好的工具,可以在单行上进行简单的替换,对于其他任何情况,只需使用awk:
我绝对不会建议将正则表达式作为解析任意XML或HTML的通用方法,但由于您说过这是一种格式良好的格式,在这种情况下,usual warning可能会被忽略:
下面是一个注释版本,解释了正在发生的事情:
^{pr2}$-n
选项禁止图案空间的自动打印。在相关问题 更多 >
编程相关推荐