分页: 1 / 1

sed的一个问题

发表于 : 2012-10-06 6:54
esolve
要用sed将一个叫example.html文件中<iframe>
那行里 /embed/后面与?hl=en 之前的
kOZZx-QYpsM换成另外一个字串
比如
s5fZx-QtpsM

怎么进行

代码: 全选

  "-//IETF//DTD HTML LEVEL 1//EN">
<HTML>
  <HEAD>
    <TITLE>Blank HTML Level 1 Page</TITLE>
    <META HTTP-EQUIV="Content-Type" 
          CONTENT="text/html; charset=utf-8">
  </HEAD>
  <BODY>
<iframe width="1000" height="650" src="http://www.youtube.com/embed/kOZZx-QYpsM?hl=en&fs=1&showinfo=0&autoplay=1" frameborder="0" allowfullscreen></iframe>

  </BODY>
</HTML>

Re: sed的一个问题

发表于 : 2012-10-06 9:21
YeLee
听你说得好复杂啊,一般替换字串假如是特例的话,我都直接用sed -i 's/kOZZx-QYpsM/s5fZx-QtpsM/' example.html的。

Re: sed的一个问题

发表于 : 2012-10-06 20:56
eexpress
● echo "http://www.youtube.com/embed/kOZZx-QYps ... lay=1"|sed 's/\(embed\/\).*\(?hl\)/\1xxx\2/'
http://www.youtube.com/embed/xxx?hl=en& ... autoplay=1

其实,你这涉及到贪婪匹配的问题。换perlre 就不成问题。

Re: sed的一个问题

发表于 : 2012-10-06 21:01
枫叶饭团
eexpress 写了:● echo "http://www.youtube.com/embed/kOZZx-QYps ... lay=1"|sed 's/\(embed\/\).*\(?hl\)/\1xxx\2/'
http://www.youtube.com/embed/xxx?hl=en& ... autoplay=1

其实,你这涉及到贪婪匹配的问题。换python就不成问题。

Re: sed的一个问题

发表于 : 2012-10-06 22:28
cjxgm
eexpress 写了:● echo "http://www.youtube.com/embed/kOZZx-QYps ... lay=1"|sed 's/\(embed\/\).*\(?hl\)/\1xxx\2/'
http://www.youtube.com/embed/xxx?hl=en& ... autoplay=1

其实,你这涉及到贪婪匹配的问题。换perlre 就不成问题。
贪婪匹配问题可以用别的方式解决

代码: 全选

sed 's/\(<iframe[^>]\+\/embed\/\)[^?]\+\([^>]\+>\)/\1s5fZx-QtpsM\2/g'