如何复制文本文件的一部分并将其粘贴到新文件中

时间:2018-12-04 13:19:04

标签: linux bash

我有一个文本文件,其中包含不同网站的HTML代码,例如一个文本文件:
textfile,我想一次复制一个源代码,然后将它们放在另一个文本文件中,因为我想将其与另一个包含相同源代码的文本文件进行比较,以了解该网站是否已更新。每次我将下一个源代码复制到新文件时,旧文件都会被删除,因此基本上新文本文件一次只能包含一个源代码。

我只能复制第一页的源代码,但我不知道如何从上次中断的地方读取文件,以复制下一个源代码。

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"

2 个答案:

答案 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