Com gnu split
, você pode salvar o cabeçalho em uma variável e split
a partir da segunda linha, usando a opção --filter
para gravar o cabeçalho primeiro e depois as 99 linhas de cada peça e também especificar o diretório de saída (por exemplo, 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_
isto irá criar peças de 100 linhas como
path to/output dir/file_01.txt
path to/output dir/file_02.txt
path to/output dir/file_03.txt
..............................