Unix:脚本作为文件的代理

时间:2012-01-03 12:46:45

标签: file unix proxy

嗨:有没有办法创建一个文件,当读取时,它是动态生成的?

我想创建同一个文件的3个版本(一个有10行,一个有100行,一个有所有行)。因此,我认为不需要这些是静态的,而是最好是它们是head / tail / cat命令的代理。

这个目的是进行单元测试 - 我希望在生产中使用的完整输入文件的一小部分上运行单元测试。但是,由于代码只运行在完整文件上(实际上是一个hadoop map / reduce应用程序),我想提供整个数据集的截断版本而不重复信息。

更新:示例

more myActualFile.txt 

1
2
3
4
5

more myProxyFile2.txt 

1
2

more myProxyFile4.txt 

1
2
3
4 

等....所以代理文件是不同的命名文件,其内容是通过简单地获取主文件的前n行来动态提供的。

1 个答案:

答案 0 :(得分:1)

这很麻烦,但是......一种方法是使用命名管道和循环shell脚本来生成内容(每个命名管道一个)。这个脚本看起来像:

while true; do
    (
        for $(seq linenr); do echo something; done
    ) >thenamedpipe;
done

然后,您的脚本将从该命名管道中读取。

另一种解决方案,如果你准备深入研究低级别的东西,那就是FUSE。