【问题标题】:How to split a large file at a certain point into smaller ones?如何在某个点将大文件拆分为较小的文件?
【发布时间】:2016-01-13 17:35:34
【问题描述】:

我很难编写代码来拆分像这样的大文本文件:

#Article:
ABC
DEF
#Article:
GHJ
KDJD

我想将文件拆分为以#Article 开头的块,并将每个块保存在名为output1output2 等的文本文件中。

所以,例如:

#Article:
ABC
DEF 

将保存在名为 output1.txt 的文本文件中。

【问题讨论】:

  • 欢迎来到Stack Overflow。由于您是这里的新手,请参加tour 并学习How to Ask 好问题。作为一般规则,大多数人不会很愿意帮助你,除非你在自己解决问题方面表现出一些最小的努力。

标签: perl split


【解决方案1】:

每次遇到标题时只需重新打开输出句柄即可。作为单行:

perl -pe'
   if ($_ eq "#Article:\n") {
      open(STDOUT, ">", sprintf("output%d.txt", ++$count))
         or die $!;
   }
'

用法:

perl -pe'...' input.txt     # Read from file(s) provided as arguments.
perl -pe'...' <input.txt    # Read from STDIN.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-06
    • 2017-08-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多