当前位置: 首页 > 面试题库 >

根据内容在linux中拆分文件

闾丘玮
2023-03-14
问题内容

我有一个大约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


 类似资料:
  • 问题内容: 我有250MB以上的巨大的CSV文件要上传 文件格式为,数据可能看起来像 我想基于划分文件,因此输出应为n个文件,其中 输出量 和 和 我该如何有效地做到这一点? 问题答案: 如果文件已经按排序,则可以执行以下操作:

  • 问题内容: 我试图根据该行的单元格中的值将其分为两行。例如,我具有以下表结构(这是一个临时表,没有任何键,索引或任何其他内容,我可以在另一个临时表中选择拆分结果): 然后,应将其拆分为: 问题答案: 我将使用

  • 问题内容: 我在包含一个大字符串的表中有一个 文本 字段,我要分离的字符串的每个部分都被一个小方块分开。 搜索时,我发现这可能是一个ascii值,所以我运行了它 返回 27 如何根据此ascii值将该字段拆分为单独的字段? 预先感谢克里斯 编辑:当前数据看起来像什么的例子。如果可能的话,将TEXT放在=之前作为标题将非常有用。 ABS_ID = 1234567 PERSON_ID = 123456

  • 我的文件内容如下: 我需要在分隔符“”处拆分我的文件。并将前面的内容保存在字符串中。我怎么能那么做?我尝试了以下方法,但不起作用

  • 问题内容: 从美学角度和性能角度来看,基于条件将项目列表拆分为多个列表的最佳方法是什么?相当于: 有没有更优雅的方法可以做到这一点? 更新:这是实际的用例,以更好地解释我正在尝试做的事情: 问题答案: 有没有更优雅的方法可以做到这一点? 该代码完全可读,而且非常清晰! 再次,这很好! 使用集合可能会稍微改善性能,但这是微不足道的差异,而且我发现列表理解要容易阅读得多,并且你不必担心顺序被弄乱了,重

  • 问题内容: 我一直在查看Linux ELF二进制文件中的汇编代码。 有时会间接跳转到存储在(只读数据)部分中的跳转表。 如何获取或任何其他工具来向我显示此数据部分的内容? 我可以执行程序并检查调试器中的相关地址,但是我不想这样做,因为它必须以交互方式完成。 理想的答案将是找到一个不仅可以向我显示内容,而且可以让我控制显示格式的工具。 问题答案: 给出该部分内容的并排十六进制/可打印ASCII转储,