Comando Linux · 4 min read · Sep 14, 2025

Comando Csplit do Linux Explicado para Iniciantes (6 Exemplos)

O comando csplit do Linux é uma utilidade versátil usada para dividir um arquivo em múltiplos segmentos com base em linhas de contexto ou padrões especificados. Ao contrário do comando split, que divide arquivos com base no tamanho, csplit permite que os usuários definam pontos de divisão usando números de linha, expressões regulares ou uma combinação de ambos, tornando-o ideal para lidar com arquivos de texto com uma estrutura previsível. O comando gera arquivos de saída nomeados sequencialmente, com um prefixo padrão e sufixos numéricos, que podem ser personalizados. Essa flexibilidade é particularmente útil para tarefas como extrair seções de arquivos de log, dividir arquivos de configuração ou preparar dados de texto para processamento por outros scripts ou aplicativos.

Neste tutorial, discutiremos os conceitos básicos desta ferramenta e aprenderemos como usá-la. Mas antes de fazermos isso, vale a pena mencionar que todos os comandos/instruções mencionados aqui foram testados no Ubuntu 24.04.

Comando Csplit do Linux

Aqui está como a página do manual do comando o define:

csplit - divide um arquivo em seções determinadas por linhas de contexto

A seguir está sua sintaxe genérica:

csplit [OPÇÃO]... ARQUIVO PADRÃO...

Os pequenos arquivos individuais criados pelo csplit têm nomes como xx00 e xx01. A seguinte definição - retirada da página do manual do comando - deve deixar as coisas mais claras:

Saídas de pedaços de ARQUIVO separados por PADRÃO(s) para arquivos 'xx00', 'xx01', ..., e contagens de bytes de cada pedaço para a saída padrão.

Os seguintes exemplos em formato de perguntas e respostas devem lhe dar uma boa ideia de como o comando csplit funciona.

Q1. Como dividir arquivos com base no número de linhas?

Suponha que seu arquivo contenha seis linhas, e o requisito seja dividir esse arquivo na terceira linha. Isso pode ser feito passando ‘3’ como um argumento de linha de comando após o nome do comando e do arquivo.

Por exemplo, no nosso caso, o arquivo1 continha as seguintes linhas:

1       Ásia  
2      África  
3      Europa  
4   América do Norte  
5   América do Sul  
6      Austrália

E aqui está o comando que executamos:

csplit file1 3

Os números produzidos na saída são a contagem de bytes para os arquivos que o comando produziu. Dois arquivos foram produzidos na saída, a saber, xx00 e xx01.

O conteúdo desses arquivos confirma que a divisão ocorreu na linha número 3.

Q2. Como dividir arquivos usando expressões regulares?

Você também pode usar expressões regulares com o comando csplit. Por exemplo, no caso anterior, se você quiser que a ferramenta repita o padrão mais uma vez, então você pode fazer isso usando o seguinte comando:

csplit file1 3 {1}

Assim, neste caso, três arquivos de saída foram produzidos:

dividir arquivos usando expressões regulares

Q3. Como ter um prefixo personalizado em vez do padrão ‘xx’?

Por padrão, os arquivos que o csplit produz na saída têm ‘xx’ como prefixo. No entanto, se você quiser, pode mudar o prefixo usando a opção de linha de comando -f, que requer o novo prefixo como entrada.

Por exemplo, o seguinte comando produzirá arquivos com ‘htf’ como prefixo.

csplit file1 1 -f htf

Q4. Como forçar o csplit a não remover arquivos de saída em caso de erro?

O comando csplit, por padrão, remove arquivos de saída (qualquer um, se criado) assim que um erro é encontrado. Por exemplo, a seguinte captura de tela confirma que nenhum arquivo de saída foi produzido:

No entanto, você pode mudar esse comportamento usando a opção - k no comando. Por exemplo, o mesmo comando foi executado novamente, mas com esta opção, e os arquivos de saída não foram excluídos desta vez.

Q5. Como suprimir linhas que correspondem ao padrão de entrada?

O comando csplit também permite suprimir linhas que correspondem ao padrão de entrada. A opção em questão é –suppress-matched.

Por exemplo, o seguinte comando divide o arquivo (file1) na linha 2 (xx00 conterá a linha 1, enquanto xx11 conterá o restante das linhas).

csplit file1 2

Mas se você quiser suprimir a linha 2, então você pode executar o seguinte comando:

csplit --suppress-matched file1 2

Q6. Como usar um número personalizado de dígitos em vez do padrão 2?

Assim como o próprio prefixo, o número de dígitos que seguem o prefixo nos nomes dos arquivos de saída também é personalizável. Então, suponha que você queira ter nomes como xx000 e xx0001, você pode fazer isso usando a opção de linha de comando -n, que requer um número de entrada significando o novo número de dígitos.

Por exemplo:

csplit -n 1 file1 2

O comando acima produziria nomes de arquivos como xx0, xx1, etc.

Conclusão

Um usuário médio da linha de comando do Linux pode não precisar do split diariamente, mas é uma utilidade importante que você deve pelo menos conhecer. Cobrimos a maioria dos exemplos básicos e opções de linha de comando aqui. Experimente-os e, em seguida, acesse a página do manual da ferramenta para aprender mais sobre ela.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.