我一直在努力解决这个问题,但收效甚微,所以我来这里是为了获得一些新的建议。
我正在尝试将每次扫描的数据提取到单独的文件中。
问题是在创建3196个文件后,我收到错误消息:awk“打开太多文件”。
我知道我需要关闭awk创建的文件,但我不知道该怎么做。
文本输入文件看起来像这样(最多80 000扫描):
Scan 1
11111 111
22222 221
...
Scan 2
11122 111
11122 111
...
Scan 3
11522 141
19922 141
...
现在我一直在做:
awk '/.*Scan.*/{n++}{print >"filescan" n }' inputfile
在创建3196个文件后,每次扫描和崩溃都会给我一个递增的输出文件..
cat filescan1
Scan 1
11111 111
22222 221
...
有什么想法吗?
答案 0 :(得分:1)
你需要close the output file,因为awk保持文件句柄处于打开状态。
awk '/.*Scan.*/{
close(file);
n++;
}
{
file="filescan"n;
print >> file;
}' inputfile