根据内容在linux中拆分文件

我有一个大约400mb的电子邮件转储。我想将其拆分为.txt文件,每个文件中包含一封邮件。每封电子邮件均以指定文档类型的标准HTML标头开头。

这意味着我将不得不根据上述标题拆分文件。我如何在Linux中进行操作?

回答:

如果你有一个 mail.txt

$ cat mail.txt

<html>

mail A

</html>

<html>

mail B

</html>

<html>

mail C

</html>

跑来csplit分裂<html>

$ csplit mail.txt '/^<html>$/' '{*}'

- mail.txt => input file

- /^<html>$/ => pattern match every `<html>` line

- {*} => repeat the previous pattern as many times as possible

检查输出

$ ls

mail.txt xx00 xx01 xx02 xx03


如果你想这样做 awk

$ awk '/<html>/{filename=NR".txt"}; {print >filename}' mail.txt

$ ls

1.txt 5.txt 9.txt mail.txt

以上是 根据内容在linux中拆分文件 的全部内容, 来源链接: utcz.com/qa/409906.html

回到顶部