menggunakan file terkompresi (.gz) dengan skrip baris perintah yang mengharapkan file yang tidak terkompresi


0

Untuk menghemat ruang disk, saya telah mem-gun banyak file saya yang saya gunakan secara teratur. Apa cara praktik terbaik untuk tetap menggunakan versi .gz file teks ini dengan, katakanlah, skrip python?

Lebih khusus lagi, apakah ada cara untuk menyalurkan file terkompresi ke dalam skrip yang mengharapkan file tidak terkompresi?

Misalnya, jika biasanya saya akan lari

python test.py file.txt

Bagaimana saya menjalankan perintah yang sama dengan a file.txt.gz?

Saya tahu bahwa saya bisa melakukan sesuatu seperti

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

Tapi itu agak panjang lebar; apakah ada cara yang lebih baik / lebih cepat?


Gunakan subtitusi proses: python test.py <(zcat file.txt.gz)
glenn jackman

bagaimana saya bisa menggunakan proses substitusi dalam kasus di mana banyak file gz terlibat?
Constantino

1
Saya kira ini bukan pertanyaan yang buruk secara konseptual. Tetapi pada tingkat praktis, seberapa besar skrip Python ini yang mengompres mereka sebenarnya menghemat ruang disk? Dengan penyimpanan yang murah dan konektivitas pengiriman yang lebih cepat seperti melalui USB 3.0, apa manfaat sebenarnya dari skema seperti ini? Saya bisa melihat manfaatnya jika ada proses otomatis perintah ini bisa disalurkan ke. Tetapi pada tingkat manusia sehari-hari? Apa manfaat nyata dari skema seperti ini?
JakeGould

Jawaban:


0

Anda juga ingin

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

atau

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

tergantung pada seberapa banyak data yang ingin Anda sampaikan ke program test.py


berdasarkan komentar anda:

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

batalkan komentar pada garis eval jika Anda suka tampilannya


bagaimana Anda mengubah saran kedua Anda untuk menangani kasus beberapa file (per panggilan python) serta panggilan python yang membutuhkan opsi boolean flag misalnya python test.py file1.txt file2.txt -v
Constantino
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.