Чтобы сэкономить место на диске, я распаковал много своих файлов, которые я регулярно использую. Каков наилучший способ по-прежнему использовать версию этих текстовых файлов .gz с, скажем, скриптами python?

В частности, есть ли способ передать сжатый файл в сценарий, который ожидает несжатый файл?

Например, если бы я нормально запускал

python test.py file.txt

Как мне запустить ту же команду с file.txt.gz?

Я знаю, что я мог сделать что-то вроде

gzip -dk file.txt.gz; python test.py file.txt; rm file.txt

Но это кажется немного затянутым; есть ли лучший / более быстрый способ?

1 ответ1

0

Вы хотите либо

for file in *.txt.gz; do python test.py <(zcat "$file"); done

или же

python test.py <(zcat *.txt.gz)

в зависимости от того, сколько данных вы хотите передать в программу test.py


основываясь на вашем комментарии:

proc_subs=$( printf ' <(zcat "%s")' *.txt.gz )
echo "python test.py $proc_subs -v"
#eval "python test.py $proc_subs -v"

откомментируйте строку eval, если вам нравится, как она выглядит

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .