Separar arquivo de texto grande em outros menores usando delimitador


Peguei um grande arquivo (12 GB) de texto com um dump do posgresql e precisava analisar separadamente algumas tabelas antes de rodar a recuperação delas. Portanto, procurei uma forma de separar cada uma das tabelas em arquivos separados e encontrei no Cantinho do Shell. Usando o comando “csplit” com a opção de separação por delimitador. Veja como ficou meu comando:

csplit -k -f tabela base_de_dados "/-- Data/" {10000}

Nesse comando usei o termo “— Data” como delimitador para gerar tantos arquivos quanto for possível com os títulos “tabela00”, “tabela01”, “tabela02” etc. Desse modo poderei conferir e utilizar os arquivos separadamente.

Obs.: Informe entre as “{}” um número que você terá certeza que será maior que a quantidade de arquivos gerados.