No Linux, gerenciar e manipular arquivos de texto é uma tarefa comum. Dois utilitários poderosos para isso são join e split. O comando join mescla linhas de dois arquivos com base em um campo comum, enquanto split divide um arquivo grande em pedaços menores e mais gerenciáveis.
Juntando Arquivos por um Campo Comum
O comando join é uma ferramenta fundamental quando você precisa linux join files (juntar arquivos linux). Por padrão, ele combina linhas de dois arquivos ordenados com base no primeiro campo idêntico.
Por exemplo, imagine que você tem dois arquivos que deseja mesclar:
file1.txt
1 John
2 Jane
3 Mary
file2.txt
1 Doe
2 Doe
3 Sue
Usando o comando join, você pode combiná-los facilmente:
$ join file1.txt file2.txt
1 John Doe
2 Jane Doe
3 Mary Sue
Como você pode ver, os arquivos foram unidos usando o primeiro campo comum (1, 2, 3). Para que o join funcione corretamente, os campos de junção em ambos os arquivos devem estar ordenados.
Especificando Campos de Junção Diferentes
E se o campo comum não for a primeira coluna? Você pode dizer ao join quais campos usar. Considere estes arquivos:
file1.txt
John 1
Jane 2
Mary 3
file2.txt
1 Doe
2 Doe
3 Sue
Aqui, precisamos juntar no segundo campo de file1.txt e no primeiro campo de file2.txt. O comando seria:
$ join -1 2 -2 1 file1.txt file2.txt
1 John Doe
2 Jane Doe
3 Mary Sue
A flag -1 2 especifica o campo 2 do primeiro arquivo, e -2 1 especifica o campo 1 do segundo arquivo.
Dividindo Arquivos Grandes
O comando split faz o oposto de juntar; ele divide um arquivo grande em arquivos menores.
split somefile
Por padrão, este comando divide somefile em novos arquivos assim que um limite de 1000 linhas é atingido. Os arquivos de saída são nomeados xaa, xab, e assim por diante. Você pode personalizar esse comportamento, por exemplo, especificando uma contagem de linhas diferente com a flag -l ou dividindo por tamanho de arquivo com a flag -b.