我有一个文本文件,其中包含不同网站的HTML代码,例如一个文本文件:
,我想一次复制一个源代码,然后将它们放在另一个文本文件中,因为我想将其与另一个包含相同源代码的文本文件进行比较,以了解该网站是否已更新。每次我将下一个源代码复制到新文件时,旧文件都会被删除,因此基本上新文本文件一次只能包含一个源代码。
我只能复制第一页的源代码,但我不知道如何从上次中断的地方读取文件,以复制下一个源代码。
input="./Desktop/sourcecode0.txt"
while read -r var
do
if [ "$var" != "</html>" ]
then
echo "$var" >> "./Desktop/htmlcode.txt"
continue
elif [ "$var" == "</html>" ]
then
echo "$var" >> "./Desktop/htmlcode.txt"
break
fi
done < "$input"
答案 0 :(得分:0)
在上面,我建议为此使用sed(流编辑器),您可以使用:
sed '/<\/html>/q' sample.html
sed '/<\/html>/q' input.html >> htmlcode.txt
默认情况下,sed上面的内容会打印所有行,而在正则表达式<\/html>
上,q
会打印该行并退出。
您能否提供示例“复制下一个源代码”到底需要什么
答案 1 :(得分:0)
如果我答对了,您想将sourcecode0.txt
分成一个文件,每个文件将包含一个<html></html>
块。
对于此任务,您可以使用
split -p '<html>' ~/Desktop/test.txt htmlcode_
将创建名称为htmlcode_aa, htmlcode_ab, htmlcode_ac...
的文件,文件数取决于<html></html>
块的数量。
如果需要,可以稍后通过调用将.txt
添加到每个文件
find ~/Desktop/htmlcode_a* | xargs -I '{}' mv {} {}.txt