我有一个文件,foo.zip看起来像这样:
foo.zip -- fileA.txt -- fileB.txt
我可以pipe这样提取的文件的输出:
unzip -p foo.zip *.txt | something
我的问题是,我想确保文件是在正确的顺序,例如fileA.txt被提取,并在fileB.txt之前pipe道。
我可以以某种方式做到这一点,仍然避免将文件暂时写入磁盘?
订单应该是一样的邮编。 所以,如果你可以控制压缩过程,那么你可以订购文件添加,并按照这个顺序解压缩。
如果你不自己做拉链,那么你将不得不将它们解压缩到文件系统并重新sorting,因为没有简单的方法来订购它们。
如果你真的想避免创build临时文件,你可以使用类似的东西
unzip -l -qq foo.zip | awk '{print $4}'
获取内容,按照您的喜好对文件名进行sorting,然后逐个解压。
有很多应该和可能的 。 如果你想确保把它们分别提取出来并把它们放在一起。
cat `unzip -p foo.zip fileA.txt` `unzip -p foo.zip fileB.txt` ... | something