Назад | Перейти на главную страницу

Порядок разархивирования трубопроводов

У меня есть файл foo.zip, который выглядит примерно так:

foo.zip
-- fileA.txt
-- fileB.txt

Я могу передать вывод извлеченных файлов следующим образом:

unzip -p foo.zip *.txt | something

Моя проблема в том, что я хочу убедиться, что файлы находятся в правильном порядке, например. этот fileA.txt извлекается и передается по конвейеру перед fileB.txt.

Могу ли я сделать это каким-либо образом и по-прежнему избегать временной записи файлов на диск?

Там много должен и мог. Если ты хочешь быть конечно извлеките их по отдельности и скатайте вместе.

cat `unzip -p foo.zip fileA.txt` `unzip -p foo.zip fileB.txt` ... | something

Порядок должен быть таким же, как у молнии. Так что, если вы можете контролировать процесс архивирования, вы можете заказать добавление файла по своему усмотрению, и разархивирование должно произойти именно в таком порядке.

Если вы не сделаете zip-архив самостоятельно, вам придется разархивировать их в файловую систему и изменить порядок, поскольку нет простого способа их упорядочить.

Если вы действительно не хотите создавать временные файлы, вы можете использовать что-то вроде

unzip -l -qq foo.zip | awk '{print $4}' 

чтобы получить содержимое, отсортируйте имена файлов по своему усмотрению, а затем разархивируйте их одно за другим.