请教grep用法

sh/bash/dash/ksh/zsh等Shell脚本
回复
bus1234
帖子: 21
注册时间: 2006-09-13 21:33

请教grep用法

#1

帖子 bus1234 » 2011-08-02 15:56

有一段脚本:
c=`grep -oP '/page/1/\d{4}-\d{2}/01/A\d{2}/\d{8}A\d{2}_pdf.pdf' node_2.htm`
for i in {01..12}
do
url=` echo $c | grep -oP "/page/1/\d{4}-\d{2}/01/A<$i>/20110801A<$i>_pdf.pdf"`
#wget -c $url
done
其中url=` echo $c | grep -oP "/page/1/\d{4}-\d{2}/01/A<$i>/20110801A<$i>_pdf.pdf"`的$i好像不能这样使用,请教我该怎么用呢
/page/1/\d{4}-\d{2}/01/A<$i>/20110801A<$i>_pdf.pdf具体为:
/page/1/2011-08/01/A01/20110801A01_pdf.pdf
/page/1/2011-08/01/A02/20110801A02_pdf.pdf
/page/1/2011-08/01/A03/20110801A03_pdf.pdf
/page/1/2011-08/01/A04/20110801A04_pdf.pdf
.....
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 请教grep用法

#2

帖子 eexpress » 2011-08-02 16:05

echo $c ?
仔细想。
正则格式是对的。
● 鸣学
bus1234
帖子: 21
注册时间: 2006-09-13 21:33

Re: 请教grep用法

#3

帖子 bus1234 » 2011-08-02 16:08

echo $c结果是/page/1/2011-08/01/A01/20110801A01_pdf.pdf /page/1/2011-08/01/A02/20110801A02_pdf.pdf
/page/1/2011-08/01/A03/20110801A03_pdf.pdf /page/1/2011-08/01/A04/20110801A04_pdf.pdf。。。
url的结果是空的,不对
fnan
帖子: 919
注册时间: 2009-07-01 22:04

Re: 请教grep用法

#4

帖子 fnan » 2011-08-03 2:32

c=`grep -oP '/page/1/\d{4}-\d{2}/01/A\d{2}/\d{8}A\d{2}_pdf.pdf' node_2.htm`
for i in {01..12}
do
n="/page/1/\d{4}-\d{2}/01/A${i}/20110801A${i}_pdf.pdf"
url=` echo $c | grep -oP $n`
#wget -c $url
done
何必这样麻烦。
for i in `grep -oP '/page/1/\d{4}-\d{2}/01/A\d{2}/\d{8}A\d{2}_pdf.pdf' node_2.htm`
do
#wget -c $i
done
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
gzbao9999
帖子: 627
注册时间: 2008-11-08 18:34

Re: 请教grep用法

#5

帖子 gzbao9999 » 2011-08-10 17:22

既然用perl正则,引用下01-12的正则(0[1-9]|1[0-2])就可以了

代码: 全选

grep -Po '/page/1/\d{4}-\d{2}/01/A(0[1-9]|1[0-2])/20110801A\1_pdf.pdf'  tnode_2.htm
气血鼓荡,身体发胀,偶飘上头,三时舒畅
回复