如何将“.nmv-fas”的所有实例更改为“title”标签之间的任何内容? 这有可能与python或有更好的方法吗?
基本上改变了:
此
<html>
<head>
<title>.rtpv05-tl</title>
</head>
<a href="http://www.youversion.com/bible/gen.1.nmv-fas">http://www.youversion.com/bible/gen.1.nmv-fas</a>
<a href="http://www.youversion.com/bible/gen.2.nmv-fas">http://www.youversion.com/bible/gen.2.nmv-fas</a>
<a href="http://www.youversion.com/bible/gen.3.nmv-fas">http://www.youversion.com/bible/gen.3.nmv-fas</a>
<a href="http://www.youversion.com/bible/gen.4.nmv-fas">http://www.youversion.com/bible/gen.4.nmv-fas</a>
<a href="http://www.youversion.com/bible/gen.5.nmv-fas">http://www.youversion.com/bible/gen.5.nmv-fas</a>
到这个
<html>
<head>
<title>.rtpv05-tl</title>
</head>
<a href="http://www.youversion.com/bible/gen.1.rtpv05-tl">http://www.youversion.com/bible/gen.1.rtpv05-tl</a>
<a href="http://www.youversion.com/bible/gen.2.rtpv05-tl">http://www.youversion.com/bible/gen.2.rtpv05-tl</a>
<a href="http://www.youversion.com/bible/gen.3.rtpv05-tl">http://www.youversion.com/bible/gen.3.rtpv05-tl</a>
<a href="http://www.youversion.com/bible/gen.4.rtpv05-tl">http://www.youversion.com/bible/gen.4.rtpv05-tl</a>
<a href="http://www.youversion.com/bible/gen.5.rtpv05-tl">http://www.youversion.com/bible/gen.5.rtpv05-tl</a>
答案 0 :(得分:1)
awk -v text='.nmv-fas' '
/<title>/ {title=$0; gsub(/<\/?title>/, "", title); replace=1}
replace {gsub(text, title)}
{print}
' file > file.tmp && mv file.tmp file
awk没有像sed的-i
当然,这取决于标题文本与<title>
标记位于同一行。为安全起见,您应该使用HTML解析器来解析HTML。
答案 1 :(得分:0)
您可以使用正则表达式将标题拉出为字符串。假设你的html在某些字符串中:
import re
match = re.compile(r"<title>(.+)</title>",re.I|re.DOTALL)
title = match.group(1)
然后只需对字符串s
执行字符串替换s.replace(".nmv-fas",title)