在CSV文件中,有一些与此类似的行:
<iframe src="https://player.vimeo.com/video/30342373" width="640" height="364" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>我想从这些行中提取30342373,它位于vimeo.com/video/和"之间。我在mawk中尝试了以下正则表达式
vimeo\.com\/video\/[^"]*它正在捕获:vimeo.com/video/30342373
如果我知道得对,mawk只支持POSIX语法,这与egrep类似。
我如何才能从线上捕获唯一的视频标识部分?
发布于 2016-11-17 20:44:53
$ awk '{gsub(/.*vimeo.com\/video\/|".*/,"")}1' file
30342373发布于 2016-11-17 20:43:45
使用sed更容易
str='<iframe src="https://player.vimeo.com/video/30342373" width="640" height="364" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>'
sed 's~.*\.vimeo\.com/video/~~; s~" .*~~' <<< "$str"
30342373这个sed首先剥离从开始到vimeo.com/video/的所有内容,然后剥离从"到结束的所有内容,从而留给我们唯一的id。
https://stackoverflow.com/questions/40664481
复制相似问题