2016-11-17 62 views
0

在CSV文件中也有類似的這一個行:在POSIX ERE正回顧後或非捕獲組(擴展正則表達式)

<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部分?

回答

1
$ awk '{gsub(/.*vimeo.com\/video\/|".*/,"")}1' file 
30342373 
+1

謝謝!這工作完美。 – Lanti

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。