Bagaimana cara membagi file dan kompres secara langsung?


12

Saya memiliki file 100GB dan saya ingin membagi masing-masing menjadi 100 dari file 1GB (per baris)

misalnya

split --bytes=1024M /path/to/input /path/to/output

Untuk 100 file yang dihasilkan, saya ingin menerapkan gzip / zip ke masing-masing file ini.

Apakah mungkin menggunakan satu perintah?


2
Untuk hingga 1GB per file (kurang jika baris berikutnya akan menimpanya) gunakan --line-bytes=1024M.
Brian

Jawaban:


30

Gunakan "--filter":

split --bytes=1024M --filter='gzip > $FILE.gz' /path/to/input /path/to/output


ini tidak twork bagi saya, terus menimpa file yang sama dengan $ FILE tidak didefinisikan dan bahkan tidak menulis di folder des.
Splaisan

kesalahan saya, perlu tanda kutip tunggal untuk mendapatkan $ FILE diganti, kesalahan besar saya, permintaan maaf dan terima kasih atas bantuan: perintah terakhir ini berhasil bagi saya untuk menyimpan data fastq yang datang dalam blok 4 baris: 'zcat ERR3152365.fastq.gz | split -a 3 -d -l 1200000 --numeric-suffixes --filter = 'pigz -p 8> $ FILE.fq.gz' - splitout / part_ '
splaisan

0

Satu liner menggunakan conditional sedekat Anda bisa datang.

cd /path/to/output && split --bytes=1024M /path/to/input/filename && gzip x*

gziphanya akan berjalan jika splitberhasil karena kondisional &&yang juga antara cddan splitmemastikan cdberhasil juga .. Catat itu splitdan gzipoutput ke direktori saat ini daripada memiliki kemampuan untuk menentukan direktori output. Anda dapat membuat direktori, jika perlu:

mkdir -p /path/to/output && cd /path/to/output && split --bytes=1024M /path/to/input/filename && gzip x*

Untuk mengembalikan semuanya:

gunzip /path/to/files/x* && cat /path/to/files/x* > /path/to/dest/filename

0

Menggunakan perintah ini dengan -dopsi memungkinkan Anda untuk menghasilkan sufix numerik.

split -d -b 2048m "myDump.dmp" "myDump.dmp.part-" && gzip myDump.dmp.part*

File yang dihasilkan:

    myDump.dmp.part-00
    myDump.dmp.part-01
    myDump.dmp.part-02
    ...
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.