我有一个大约400mb的邮箱转储.我想把它分成两部分.txt文件,每个文件中包含一封邮件.每封邮箱都以指定doctype的标准HTML标题开头.
这意味着我将不得不根据上述标题拆分文件.在linux中我该怎么做?
我有一个大约400mb的邮箱转储.我想把它分成两部分.txt文件,每个文件中包含一封邮件.每封邮箱都以指定doctype的标准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