0

在 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 ERE 语法,类似于egrep.

如何仅从行中捕获唯一的视频 ID 部分?

4

2 回答 2

1

使用以下方法更容易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。

于 2016-11-17T20:43:45.683 回答
1
$ awk '{gsub(/.*vimeo.com\/video\/|".*/,"")}1' file
30342373
于 2016-11-17T20:44:53.707 回答