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