问个脚本, 怎么得到子串

sh/bash/dash/ksh/zsh等Shell脚本
回复
esolve
帖子: 210
注册时间: 2010-05-08 4:52

问个脚本, 怎么得到子串

#1

帖子 esolve » 2012-10-02 4:50

一个文件里有很多行,有如下两种类型
http://www.youtube.com/watch?v=VVmbhYKDKfU
http://www.youtube.com/watch?v=95K3--2B ... sults_main

我要攫取 VVmbhYKDKfU, 95K3--2BU0U , 这两个子串
也就是/watch?v=后 以及 &playnext=1 之前的那个子串

用shell awk 或者sed
大致如何完成?
谢谢
头像
cuihao
帖子: 4793
注册时间: 2008-07-24 11:33
来自: 郑州
联系:

Re: 问个脚本, 怎么得到子串

#2

帖子 cuihao » 2012-10-02 8:13

:em04 既不会awk也不太了解sed

代码: 全选

URL='http://www.youtube.com/watch?v=95K3--2BU0U&playnext=1&list=PL450D7EFC342E63A3&feature=results_main'
python2 -c "import re;print re.search(r'(?<=watch\?v=)[^&]*','$URL').group()"
求人不如求它仨: 天蓝的Wiki 屎黄的Wiki 绿
Site: CUIHAO.TK    Twitter: @cuihaoleo
Machine: Athlon64 X2 5200+ / 2x2GB DDR2-800 / GeForce GTS 450
AD: ~まだ見ぬ誰かの笑顔のために~
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 问个脚本, 怎么得到子串

#3

帖子 lilydjwg » 2012-10-02 9:39

代码: 全选

grep -oP '(?<=v=)[^&]+'
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 问个脚本, 怎么得到子串

#4

帖子 枫叶饭团 » 2012-10-02 10:51

代码: 全选

awk -F "[&?]" '{ print $2 }'
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 问个脚本, 怎么得到子串

#5

帖子 枫叶饭团 » 2012-10-02 11:01

代码: 全选

sed 's/.*watch?\(.*\)&playnext.*/\1/'
这个好玩
回复