GNU/Linux >> Belajar Linux >  >> Linux

Pisahkan File Dengan Jumlah Baris Termasuk Header Di Masing-Masing?

Saya perlu membagi .txt file menjadi lebih kecil yang masing-masing berisi 100 baris, termasuk header. Saya tidak tahu apakah ini relevan, tetapi file aslinya dibatasi seperti ini:

COLUMN1 | COLUMN2 | COLUMN3
1 | 2 | 3
4 | 5 | 6
7 | 8 | 9

Saya membutuhkan setiap file yang dihasilkan dari pemisahan ini untuk memiliki baris header. Juga, mereka harus dibuat di/dipindahkan ke direktori lain dan mengikuti pola nama, seperti file_01.txt , file_02.txt , dll

Jawaban yang Diterima:

Dengan gnu split anda bisa menyimpan header dalam variabel lalu split mulai dari baris ke-2, menggunakan --filter opsi untuk menulis header terlebih dahulu dan kemudian 99 baris untuk setiap bagian dan juga menentukan direktori keluaran (mis. path to/output dir/ ):

header=$(head -n 1 infile.txt)
export header
tail -n +2 infile.txt | split -l 99 -d --additional-suffix=.txt 
--filter='{ printf %s\n "$header"; cat; } >path to/output dir/$FILE' - file_

ini akan membuat potongan 100 baris sebagai

path to/output dir/file_01.txt
path to/output dir/file_02.txt
path to/output dir/file_03.txt
..............................

Linux
  1. Cetak Garis Antara (dan Termasuk) Dua Pola?

  2. Hapus Semua File/direktori Kecuali Satu File?

  3. Bagaimana Cara Mencetak Baris Nomor 15 Dan 25 Dari Setiap 50 Baris?

  1. Bagaimana Menghitung Jumlah Baris Dalam File Setelah Pertandingan Grep?

  2. Hitung Baris Dalam File?

  3. Tulis ke file .txt?

  1. Satu perintah untuk membuat direktori dan file di dalamnya perintah linux

  2. Bagaimana cara membagi satu file teks menjadi beberapa file *.txt?

  3. Daftar baris hanya dari satu file di DIFF