使用正则匹配并显示匹配的内容
最近在解析HTML文件,遇到这样的一个场景。我需要将HTML文件中data-url="xxx"中的xxx查找并显示出来。
首先考虑使用find,但是find只能显示包含查找内容的文件名,不符合场景的需要。
接着考虑使用grep,配合-o参数,确实可以显示匹配到的内容,但是grep正则的时候,总是贪婪匹配,不能够最少匹配。如果非贪婪匹配,则需要使用GNU grep,命令如下:grep -o -P。但是Mac中的grep默认是BSD grep,所以这条路也走不通了。
最后,只有求助于perl的命令行方式来实现了,最后代码如下:
1 | find www.maserati.com.cn -name *html - exec cat {} \; | perl -ne 'print $1 if /data-url=\"(http:\/\/.*?)\"/;' |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步