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
..............................