【问题标题】:AWK split a large file into thousand mini files errorAWK 将一个大文件拆分成上千个迷你文件错误
【发布时间】:2014-04-23 08:41:12
【问题描述】:

我有一个非常大的文件,我需要将其拆分为数千个迷你文件,这是我得到的错误:

一次最多可以打开 2042 个文件。输入线 编号是 144620。文件是 help.txt。源代码行号为 1。

这是我分割大文件的代码:

awk '/HELP./{x="Count"++i;}{print > x;}'  help.txt

关于如何通过此错误的任何想法?

【问题讨论】:

  • 打印后close(x) 有帮助吗?

标签: bash unix awk


【解决方案1】:

您应该在完成后关闭每个文件:

/HELP./{if (x) close (x); x="Count"++i}{print > x}

【讨论】:

  • @hek2mgl 但我认为这两条规则不应该加入。第一个,仅用于匹配HELP 的行,第二个对所有行执行..
  • 啊,我明白了。顺便说一句,我不知道这里需要关闭。学到了。
  • @hek2mgl close() 仅在您不使用 GNU awk 的情况下才需要。
  • @EdMorton 感谢您提供该信息!我尝试(使用 GNU awk)使用 xxxxxxxx 文件,但无法重现。 :)
  • @HåkonHægland +!。仅供参考,您不需要 if (x),因为如果在没有参数或不代表打开文件的参数的情况下调用 close(),则不需要执行任何操作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-05
  • 1970-01-01
  • 1970-01-01
  • 2017-09-05
  • 2019-09-23
相关资源
最近更新 更多