微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 在bash中简单的正则表达式解析

我想解析一个包含类似这些行的日志文件(log.txt):

2010-10-19 07:56:14 URL:http://www.website.com/page.PHP?ID=26 [13676] -> "www.website.com/page.PHP?ID=26" [1]
2010-10-19 07:56:14 URL:http://www.website.com/page.PHP?ID=44 [14152] -> "www.website.com/page.PHP?ID=44" [1]
2010-10-19 07:56:14 URL:http://www.website.com/page.PHP?ID=13 [13681] -> "www.website.com/page.PHP?ID=13" [1]
2010-10-19 07:56:14 ERROR:Something bad happened
2010-10-19 07:56:14 ERROR:Something really bad happened
2010-10-19 07:56:15 URL:http://www.website.com/page.PHP?ID=14 [12627] -> "www.website.com/page.PHP?ID=14" [1]
2010-10-19 07:56:14 ERROR:Page not found
2010-10-19 07:56:15 URL:http://www.website.com/page.PHP?ID=29 [13694] -> "www.website.com/page.PHP?ID=29" [1]

你可能已经猜到了:

1)我需要从每一行中提取这部分:

2010-10-19 07:56:15 URL:http://www.website.com/page.PHP?ID=29 [13694] -> "www.website.com/page.PHP?ID=29" [1]
------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

2)这部分转到另一个文件(log.html),如下所示:

<a href="http://www.website.com/page.PHP?ID=29">http://www.website.com/page.PHP?ID=29</a>

我需要通过bash脚本执行此操作,该脚本将在* nix平台上运行.我不知道shell编程,所以详细的脚本将非常感激,指向bash编程参考的指针会做.

解决方法:

这应该工作:

sed -n 's%^.* URL:\(.*\) \[[0-9]*\] -> .*$%<a href="\1">\1</a>%p' log.txt

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐