嗨:有没有办法创建一个文件,当读取时,它是动态生成的?
我想创建同一个文件的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行来动态提供的。
答案 0 :(得分:1)
这很麻烦,但是......一种方法是使用命名管道和循环shell脚本来生成内容(每个命名管道一个)。这个脚本看起来像:
while true; do
(
for $(seq linenr); do echo something; done
) >thenamedpipe;
done
然后,您的脚本将从该命名管道中读取。
另一种解决方案,如果你准备深入研究低级别的东西,那就是FUSE。