根据内容在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
检查输出
$ lsmail.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