[英]Using sed and regex to capture last part of url
我正在尝试将sed匹配到url的最后一部分并输出。 例如:
echo "http://randomurl/suburl/file.mp3" | sed (expression)
应该给出输出:
file.mp3
到目前为止,我已经尝试了sed 's|\\([^/]+mp3\\)$|\\1|g'
但它只输出整个网址。 也许有一些我在这里看不到的东西,但无论如何,帮助将不胜感激!
这工作:
echo "http://randomurl/suburl/file.mp3" | sed 's#.*/##'
basename
是你的好朋友。
> basename "http://randomurl/suburl/file.mp3"
=> file.mp3
这应该做的工作:
$ echo "http://randomurl/suburl/file.mp3" | sed -r 's|.*/(.*)$|\1|'
file.mp3
哪里:
|
已被用来代替/
来分隔s
命令的参数。 /
后发现的任何东西。 编辑:您还可以使用bash 参数替换功能:
$ url="http://randomurl/suburl/file.mp3"
$ echo ${url##*/}
file.mp3
echo 'http://randomurl/suburl/file.mp3' | grep -oP '[^/\n]+$'
这是使用grep
的另一种解决方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.