Разархивируйте порядок передачи по каналу

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

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

Я могу передать вывод по каналу извлеченных файлов как это:

unzip -p foo.zip *.txt | something

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

Я могу сделать это в некотором роде и все еще постараться не писать файлы временно в диск?

0
задан 4 November 2014 в 15:09
2 ответа

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

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

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

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

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

.
1
ответ дан 4 December 2019 в 12:30

Много shoulds и cans . Если вы хотите быть уверены извлечь их по отдельности и котировать их вместе.

cat `unzip -p foo.zip fileA.txt` `unzip -p foo.zip fileB.txt` ... | something
2
ответ дан 4 December 2019 в 12:30

Теги

Похожие вопросы