将信息存储在文件中以加快访问速度

时间:2017-10-29 18:02:42

标签: linux shell

假设我有字符串列表:['a','b']。我想创建一些shell脚本,第一次调用返回'a',第二个'b'。我知道以下方法。

  1. 要创建两个文件1(内容:a),2(内容:b),然后创建保留当前数字的第三个文件 - 指针。当我只是从第三个文件打开名称的文件并增加此数字。但如果列表很大,我必须保留很多文件。
  2. 将列表中的所有字符串按行保存在一个文件中,为数字指针创建第二个文件,在这种情况下指向第一个文件的特定行。但在这种情况下,对于列表的最后一行,OS也必须从第一个文件中的所有前面的行进行迭代。
  3. 我们可以更改文件本身,比如总是先占用第一行,然后从中删除第一行,但仍然删除类似cat 1 | tail $((length-1)) >1之类的行也似乎是昂贵的操作,需要复制所有行。也许这种方法可以通过一些依赖于OS的方式将指针移动到文件的开头来改进?
  4. 所以问题是:执行此类事情的最佳方式是什么?

1 个答案:

答案 0 :(得分:1)

创建一个FIFO。让脚本重复cat文件到FIFO。让其他进程从FIFO中读取一行。