csplit é um popular utilitário de linha de comando do Linux usado para dividir o conteúdo de um arquivo em dois. O arquivo que você precisa alterar deve ser um arquivo de texto com a extensão ".TXT"extensão.
O comando é fácil de usar e funciona bem em todas as distribuições do Linux. Com o uso de diferentes sinalizadores disponíveis para csplit, você também pode modificar a saída de acordo com sua necessidade.
Veja como usar o csplit para dividir um arquivo no Linux.
O que é csplit?
Usado no Linux e em outros sistemas operacionais semelhantes ao Unix, o csplit pode dividir um arquivo em arquivos individuais determinados por linhas de contexto.
A sintaxe básica do comando é:
csplit[OPÇÃO][PADRÃO]
csplit vs. dividir
A maioria dos usuários do Linux gosta de usar o comando split quando se trata de dividir um arquivo em vários arquivos menores. O problema com este comando é que ele depende do tamanho do byte ou do tamanho da linha para dividir os arquivos.
Isso não é viável em cenários em que você deseja dividir os arquivos com base em seu conteúdo, e não em seu tamanho. É quando o csplit vem em socorro, pois divide o arquivo em blocos de tamanho fixo com base no conteúdo, em vez da contagem de bytes.
Como instalar o csplit no Linux
O csplit vem pré-instalado em quase todas as distribuições Linux. No entanto, se você enfrentar um erro "csplit: command not found", isso significa que a ferramenta não está instalada em seu sistema. Para instalar o csplit no Ubuntu, execute:
sudo apt-pegar instalar coreutils
No Arch Linux, execute:
sudo pacman -S coreutils
Para instalar o csplit no Fedora e RHEL:
sudo dnf instalar coreutils
Como usar o csplit no Linux
Para ver como o csplit funciona, crie um arquivo de texto em seu sistema. Usar o comando touch para criar um arquivo vazio.
tocarnome do arquivo.TXT
Depois de criar o arquivo, abra-o com o editor nano para modificar seu conteúdo.
nanonome do arquivo.TXT
Depois de adicionar algum conteúdo ao arquivo, pressione Ctrl + X e então Y para salvá-lo e fechá-lo.
Para verificar o conteúdo do arquivo usando o comando do gato, correr:
nome de arquivo do gato
Use o comando csplit para dividir um arquivo
Para entender como o csplit funciona, primeiro observe o conteúdo do arquivo que está sendo usado aqui como exemplo.
O arquivo contém nove linhas de números de 1 a 9. Se você tiver que dividir o arquivo em dois, como dirá ao csplit qual conteúdo enviar para o primeiro arquivo e qual para o outro? Isso é fácil. No comando, você só precisa informar ao csplit de qual linha iniciar a divisão.
Isso é feito especificando o número da linha. Por exemplo, se você deseja dividir o arquivo da terceira linha com a palavra "Londres", mencione 3 no comando. Digite o comando assim:
csplitnome do arquivo.TXT 3
Este comando dividirá instantaneamente o arquivo em dois. Usar o comando ls para listar todo o conteúdo do diretório para ver os arquivos de saída. Você encontrará os novos arquivos com os nomes xx00 e xx01 ao lado do arquivo original.
Use o comando cat para verificar o conteúdo de ambos os arquivos.
Como você pode ver, o csplit divide o arquivo em duas partes a partir da terceira linha, conforme especificado no comando.
As opções do comando csplit
Aqui estão algumas das opções de linha de comando do csplit que você pode usar:
1. Alterar o prefixo dos arquivos de saída
Também conhecido como sinalizador de prefixo, -f modifica o prefixo no nome do arquivo. Você deve ter notado quando o csplit divide o arquivo, os novos arquivos criados têm xx como o prefixo nos nomes dos arquivos. Você pode mudar isso usando o -f sinalizador no comando.
Por exemplo, se você quiser que os nomes dos arquivos tenham abc como um prefixo em vez de xx, emita o comando assim:
csplit-fabcnome do arquivo.TXT 3
Conforme visível, após a divisão, ambos os arquivos têm abc como o prefixo nos nomes.
2. Mantenha os arquivos quando ocorrerem erros
O -k ou o --manter arquivos A opção não remove os arquivos de saída se houver um erro no comando csplit.
Emita o seguinte comando com falha:
csplit -k randomfile.txt 2 {3}
3. Modifique o número de dígitos no nome do arquivo
Usando esta opção, você pode informar ao comando csplit quantos dígitos deseja ver no nome do arquivo após o prefixo. Também é chamado de sinalizador de dígitos.
Emita o seguinte comando para manter apenas um dígito no nome do arquivo:
csplit-n 1 arquivo aleatório.TXT 2
Sem o -n sinalizador, por padrão, você verá dois dígitos no nome do arquivo.
4. Divida o arquivo sem a contagem de tamanho de saída
Também conhecida como bandeira silenciosa, a -s sinalizador divide silenciosamente o arquivo sem mencionar a contagem de tamanho dos arquivos de saída.
csplit-sarquivo aleatório.TXT 3
5. Veja a ajuda da linha de comando
Para ver detalhes de todas as opções disponíveis para csplit, use o -h ou --ajuda sinalizador no comando.
csplit --ajuda
6. Verifique o número da versão do csplit
Para ver qual versão do csplit você está usando, execute o comando com o --versão bandeira:
csplit --versão
7. Omitir uma linha específica durante a divisão
Você também pode usar o --supress-matched opção de linha de comando para omitir uma linha específica ao dividir o arquivo.
csplit--supress-matchednome do arquivo.TXT 5
Ao criar os dois arquivos, csplit irá ignorar a quinta linha e dividir o arquivo da próxima linha.
A quinta linha do arquivo original contém a palavra "Berlim". No arquivo de saída, "Berlin" foi omitido.
Divida arquivos sem esforço com um único comando no Linux
Existem muitos utilitários de linha de comando disponíveis para gerenciar arquivos em um sistema Linux. Um deles é o csplit. Por padrão, está disponível em todos os sistemas Linux. Caso contrário, você pode simplesmente instalá-lo por meio da linha de comando.
csplit é uma maneira fácil e eficiente de dividir um arquivo quando você precisa dividir o arquivo com base em seu conteúdo. O csplit vem com várias opções de linha de comando que oferecem a flexibilidade de adaptar a saída da maneira que você deseja. Existem várias ferramentas de linha de comando para visualizar o conteúdo de um arquivo no Linux se você quiser verificar os arquivos após a divisão.