GNU/Linux >> Belajar Linux >  >> Linux

unix - membagi file .gz besar per baris

pipa untuk membagi gunakan gunzip -c atau zcat untuk membuka file

gunzip -c bigfile.gz | split -l 400000

Tambahkan spesifikasi output ke perintah split.


Cara melakukan yang terbaik bergantung pada apa yang Anda inginkan:

  • Apakah Anda ingin mengekstrak satu bagian dari file besar?
  • Atau apakah Anda ingin membuat semua bagian sekaligus?

Jika Anda menginginkan satu bagian dari file , ide Anda untuk menggunakan gunzip dan head benar. Anda dapat menggunakan:

gunzip -c hugefile.txt.gz | head -n 4000000

Itu akan menampilkan 4.000.000 baris pertama pada standar keluar - Anda mungkin ingin menambahkan pipa lain untuk benar-benar melakukan sesuatu dengan data tersebut.

Untuk mendapatkan bagian lainnya, Anda akan menggunakan kombinasi head dan tail , seperti:

gunzip -c hugefile.txt.gz | head -n 8000000 |tail -n 4000000

untuk mendapatkan blok kedua.

Apakah mungkin melakukan serangkaian solusi ini atau apakah gunzip -memerlukan cukup ruang untuk seluruh file untuk dibuka ritsletingnya

Bukan, gunzip -c tidak memerlukan ruang disk apa pun - ia melakukan segalanya di memori, lalu mengalirkannya ke stdout.

Jika Anda ingin membuat semua bagian sekaligus , lebih efisien untuk membuat semuanya dengan satu perintah, karena file input hanya dibaca sekali. Salah satu solusi yang baik adalah dengan menggunakan split; lihat jawaban jim mcnamara untuk detailnya.


Saat Anda mengerjakan aliran (tidak dapat diputar ulang), Anda akan ingin menggunakan bentuk ekor '+N' untuk mendapatkan garis mulai dari garis N dan seterusnya.

zcat hugefile.txt.gz | head -n 40000000
zcat hugefile.txt.gz | tail -n +40000001 | head -n 40000000
zcat hugefile.txt.gz | tail -n +80000001 | head -n 40000000

Linux
  1. Perintah unix cepat untuk menampilkan baris tertentu di tengah file?

  2. unix - kepala DAN ekor file

  3. Ubah ujung garis Unix ke Windows

  1. Cara Memisahkan Dan Menggabungkan File Dari Baris Perintah Di Linux

  2. Cat Line X Ke Line Y Pada File Besar?

  3. Cara Menghitung baris dalam file di UNIX/Linux

  1. Ubah tanggal pembuatan file

  2. Bagaimana cara membagi file dan menyimpan baris pertama di setiap bagian?

  3. unix - hitungan kolom dalam file