Seu comando
$ sed -n "1,1p" originalFile >>splitFile
adicionará o ID ao final de splitFile
, pois >>
está instruindo o shell a anexar o fluxo ao arquivo. Também é muito lento, pois sed
processará todas as linhas de 80M de originalFile
antes de sair.
Após a divisão, você terá cerca de 160 arquivos com nomes xaa
, xab
, xac
etc. Vamos adicionar o cabeçalho do arquivo original aos seguintes passos:
head -n 1 originalFile >id_line.txt
for f in x??; do
cat id_line.txt "$f" >tmpfile && mv tmpfile "$f"
done
rm id_line.txt
O primeiro comando extrai a primeira linha de originalFile
para seu próprio arquivo, id_line.txt
.
O loop itera todos os arquivos gerados, supondo que você tenha usado split
com o prefixo padrão etc. e concatena os arquivos id_line.txt
e split em um arquivo temporário chamado tmpfile
. Se isso correr bem, tmpfile
substitui o arquivo dividido.
A última linha remove id_line.txt
, que agora cumpriu sua finalidade.