繁体   English   中英

如何grep文件中的URL?

[英]How to grep for a URL in a file?

例如,我有一个包含img URL的巨大HTML文件: http//ex.example.com/hIh39j+ud9wr4/Uusfh.jpeg

我想获取此URL,假设它是整个文件中唯一的 URL。

cat file.html | grep -o 'http://ex[a-zA-Z.-]*/[a-zA-Z.-]*/[a-zA-Z.,-]*'

当URL没有加号时才有效

我如何为+标志工作?

你错过了0-9级的角色(也没用过猫)

grep -o 'http://ex[a-zA-Z.-]*/[a-zA-Z0-9+-]*/[a-zA-Z0-9.,-+]*' file.html

略有改进,使用-i表示不区分大小写,只匹配图像.jpg.jpeg

grep -io 'http://ex[a-z.-]*/[a-z0-9+-]*/[a-z0-9.,-+]*[.jpe?g]' file.html

或者只是:

grep -io 'http://ex.example.*[.jpe?g]' file.html

以下修复了此特定情况的 正则表达式 (包括数字和加号):

http://ex[a-zA-Z.-]*/[a-zA-Z0-9.+-]*/[a-zA-Z0-9.+-]*

示范:

echo "For example, I have a huge HTML file that contains img URL: http://ex.example.com/hIh39j+ud9wr4/Uusfh.jpeg"

我想获取此URL,假设它是整个文件中唯一的URL。

cat file.html | grep -o 'http://ex[a-zA-Z.-]*/[a-zA-Z.-]*/[a-zA-Z.,-]*'

仅当URL没有加号时才有效。 我如何为+标志工作?

cat file.html| grep -o 'http://ex[a-zA-Z.-]*/[a-zA-Z0-9.+-]*/[a-zA-Z0-9.+-]*'

输出:

http://ex.example.com/hIh39j+ud9wr4/Uusfh.jpeg

不会提取所有有效的URL。 关于URL匹配,这个网站还有很多其他答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM