2009-11-09 64 views

回答

0
grep -o "PART I WANT TO EXTRACT" foo 

编辑: “第一部分我想提取” 可以是一个正则表达式,即:

grep -o http://[a-z/.]* foo 
+0

我正在使用: >'grep -o'http:// [az/.A-Z0-9] * " > \ [link \]'' 但它给了我: >'http:// img18.imageshack.us/img18/8079/69903601.jpg " > [链接]' 我不想在最后的东西。 – Josh

+0

那么,你可以grep找到,然后使用grep -o来获取表达式:> grep'http:// [a-z/.A-Z0-9] * " > \ [link \]'| grep -o'http:// [a-z/.A-Z0-9] * – ctd

0
expr "$string" : 'href="\(.*\)">\[link\]' 
2

用awk

$ echo "href="PART I WANT TO EXTRACT">[link]" | awk -F""" '{print $2}' 
PART I WANT TO EXTRACT 

或者使用shell本身

$ a="href="PART I WANT TO EXTRACT">[link]" 
$ a=${a//"/} 
$ echo ${a/&*/} 
PART I WANT TO EXTRACT 
2

下面是Bash的另一种方式:

$ string="href="PART I WANT TO EXTRACT">[link]" 
$ entity=""" 
$ string=${string#*${entity}*} 
$ string=${string%*${entity}*} 
$ echo $string 
PART I WANT TO EXTRACT 

这说明了两个功能:删除匹配前缀/后缀模式和使用一个变量来保存模式(你可以使用文字来代替)。