bash – 检查有效链接(URL)
发布时间:2020-12-16 01:10:11 所属栏目:安全 来源:网络整理
导读:我正在阅读这个 other question,它有一些非常好的正则表达式,但据我所知,由于BASH命令不支持这种复杂的rexeg,所以它们不能用BASH命令. if echo "http://www.google.com/test/link.php" | grep -q '(https?|ftp|file)://[-A-Z0-9+@#/%?=~_|!:,.;]*[-A-Z0-9+
我正在阅读这个
other question,它有一些非常好的正则表达式,但据我所知,由于BASH命令不支持这种复杂的rexeg,所以它们不能用BASH命令.
if echo "http://www.google.com/test/link.php" | grep -q '(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|]'; then echo "Link valid" else echo "Link not valid" fi 但这不起作用,因为grep -q不起作用…… 编辑,好吧,我刚才意识到grep有一个“扩展正则表达式”(-E)选项,似乎可以使它工作.但如果有人有更好/更快的方式,我仍然会喜欢这里.
以下适用于Bash> =版本3.2而不使用grep:
regex='(https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]*[-A-Za-z0-9+&@#/%=~_|]' string='http://www.google.com/test/link.php' if [[ $string =~ $regex ]] then echo "Link valid" else echo "Link not valid" fi 你的正则表达式似乎不包括小写字母字符[a-z]所以我在这里添加它们. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |