假设有一个字符串的值为[maplesnow][one_piece][260][jap_chn][HDTV][rv10].rmvb
我想要把其中的260这个数字的值取出来,有什么简单的方法?
请教一个shell的写法
-
- 帖子: 102
- 注册时间: 2008-05-28 14:14
-
- 帖子: 14
- 注册时间: 2009-09-19 18:17
Re: 请教一个shell的写法
echo "[maplesnow][one_piece][260][jap_chn][HDTV][rv10].rmvb" | sed 's/.*\([0-9]\{3\}\).*/\1/g'
-
- 帖子: 1453
- 注册时间: 2008-05-24 8:30
Re: 请教一个shell的写法
代码: 全选
echo "[maplesnow][one_piece][260][jap_chn][HDTV][rv10].rmvb" | sed 's/.*\[\([0-9]\+\)\].*/\1/'
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
-
- 帖子: 102
- 注册时间: 2008-05-28 14:14
Re: 请教一个shell的写法
Thanks!aerofox 写了:代码: 全选
echo "[maplesnow][one_piece][260][jap_chn][HDTV][rv10].rmvb" | sed 's/.*\[\([0-9]\+\)\].*/\1/'
sed 's/.*\[\([0-9]\+\)\].*/\1/表達式中,\+是什意思啊?
-
- 帖子: 1453
- 注册时间: 2008-05-24 8:30
Re: 请教一个shell的写法
\+ 就是前面表达式(即[0-9])的1次或多次重复,跟 * 的作用类似,只是 * 号允许零次,这里要是换成 * 号,就可以匹配带空方括号的情形,你的字符串中应该不会有空方括号,所以也可以把 \+ 换成 *。