我有一个非常非常长的文件。单行将不适合内存。我需要分别处理每一行,所以我想将每一行写入一个 FIFO 节点,在行之间发送 EOF。这个模型适用于我正在做的事情,并且是理想的。
这些行不能全部存储在 RAM 中,因此read
内置不是一个选项。无论我使用什么命令,都需要在读取数 GB 源文件时直接(无缓冲)写入 FIFO。
我怎样才能做到这一点,最好使用纯 bash 和基本的 Linux 实用程序,而无需安装任何特殊程序?我已经尝试过类似的东西sed -u 'p'
,但不幸的是,我似乎无法获得任何常见的程序来在行之间发送 EOF。
bash 版本:
GNU bash, version 4.2.45(1)-release (x86_64-pc-linux-gnu)
更新
我想避免从文件中读取“行号 X”的实用程序/技巧。该文件有数千行很长的行;重复评估相同的换行符会花费很长时间。为了在合理的时间范围内完成此操作,任何正在读取行的程序都需要按顺序读取每一行,保存其先前的位置,就像read
+ 管道一样。