【发布时间】:2018-12-15 00:14:59
【问题描述】:
伙计们,我正在尝试找到一种方法来避免出现 awk 错误 "too many open file" 。这是我的情况:
INPUT : ASCII 文件,很多行,使用这个方案:
NODE_212_lenght.._1
NODE_212_lenght.._2
NODE_213_lenght.._1
NODE_213_lenght.._2
为了将这个文件与具有相同 NODE 编号的每条记录分开,我使用了这个单行 awk 命令
awk -F "_" '{print >("orfs_for_node_" $2 "")}' <file
对于一个由很多行组成的文件,这个命令总是说“打开的文件太多”。我也试过用 2k 线分割,同样的。 我实际上不能低于 2k 行,因为输入的是一个巨大的文件。
我知道 awk 可以关闭在里面做某事后的文件,但我实际上不知道该怎么做。我试过添加
awk -F "_" '{print >("orfs_for_node_" $2 ""); close(orfs_for_node_*)}' <file
但这不会产生任何输出。
【问题讨论】: