如何将特定点的大文件拆分成较小的文件?

时间:2016-01-13 17:35:35

标签: perl split

我在编写代码时难以拆分大文本文件,如下所示:

#Article:
ABC
DEF
#Article:
GHJ
KDJD

我希望以#Article开头的块分割文件,并将每个块保存在名为 output1 output2 的文本文件中,依此类推。

所以,例如:

#Article:
ABC
DEF 

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

1 个答案:

答案 0 :(得分:-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.