分页: 1 / 1

请教一个shell的写法

发表于 : 2009-10-26 22:34
liuke.forever
假设有一个字符串的值为[maplesnow][one_piece][260][jap_chn][HDTV][rv10].rmvb
我想要把其中的260这个数字的值取出来,有什么简单的方法?

Re: 请教一个shell的写法

发表于 : 2009-10-27 0:36
maozhx
echo "[maplesnow][one_piece][260][jap_chn][HDTV][rv10].rmvb" | sed 's/.*\([0-9]\{3\}\).*/\1/g'

Re: 请教一个shell的写法

发表于 : 2009-10-27 6:20
aerofox

代码: 全选

echo "[maplesnow][one_piece][260][jap_chn][HDTV][rv10].rmvb" | sed 's/.*\[\([0-9]\+\)\].*/\1/'

Re: 请教一个shell的写法

发表于 : 2009-10-27 8:55
eexpress
\d{3}

Re: 请教一个shell的写法

发表于 : 2009-10-27 9:01
liuke.forever
aerofox 写了:

代码: 全选

echo "[maplesnow][one_piece][260][jap_chn][HDTV][rv10].rmvb" | sed 's/.*\[\([0-9]\+\)\].*/\1/'
Thanks!
sed 's/.*\[\([0-9]\+\)\].*/\1/表達式中,\+是什意思啊?

Re: 请教一个shell的写法

发表于 : 2009-10-27 12:37
aerofox
\+ 就是前面表达式(即[0-9])的1次或多次重复,跟 * 的作用类似,只是 * 号允许零次,这里要是换成 * 号,就可以匹配带空方括号的情形,你的字符串中应该不会有空方括号,所以也可以把 \+ 换成 *。