paste
100%

Text-Fu · Lição 7

paste

Aprenda a mesclar linhas correspondentes ou serializar linhas com delimitadores configuráveis usando paste.

O comando paste combina linhas como colunas. Por padrão, ele obtém uma linha de cada arquivo de entrada, une essas linhas com uma tabulação e repete a operação até que todas as entradas cheguem ao fim.

Mesclagem de Arquivos Lado a Lado

Crie dois arquivos pequenos:

$ printf 'alice\nbob\n' > names.txt
$ printf 'admin\nviewer\n' > roles.txt

Forneça os dois arquivos a paste:

$ paste names.txt roles.txt
alice	admin
bob	viewer

O espaço visível entre as colunas é uma tabulação. Ao contrário de cat, que grava um arquivo completo depois do outro, paste combina as linhas correspondentes das entradas.

first.txt contém A e depois B, enquanto second.txt contém 1 e depois 2. O que paste first.txt second.txt produz por padrão?

Escolha de um Delimitador

Use -d LIST para substituir o separador padrão de tabulação. Para usar dois-pontos:

$ paste -d ':' names.txt roles.txt
alice:admin
bob:viewer

Coloque entre aspas delimitadores que tenham significado para o shell. paste pode alternar entre vários caracteres delimitadores quando a lista contém mais de um, mas um único caractere é a opção mais simples ao criar duas colunas.

Qual comando une as linhas correspondentes de names.txt e roles.txt com dois-pontos?

Serialização das Linhas de um Arquivo

A opção -s processa cada arquivo de entrada em modo serial, unindo suas linhas em uma única linha de saída. Crie um arquivo com uma palavra por linha:

$ printf 'The\nquick\nbrown\nfox\n' > words.txt
$ paste -s words.txt
The	quick	brown	fox

Combine -s com -d para escolher o separador:

$ paste -s -d ' ' words.txt
The quick brown fox

Se vários arquivos forem fornecidos com -s, cada arquivo se tornará sua própria linha de saída.

Qual comando une todas as linhas de words.txt em uma única linha de saída separada por espaços?

Tratamento de Entradas com Tamanhos Diferentes

Quando arquivos de entrada paralelos possuem números diferentes de linhas, paste continua até o final do arquivo mais longo. Os valores ausentes de um arquivo mais curto se tornam campos vazios:

$ printf 'A\nB\nC\n' > letters.txt
$ printf '1\n2\n' > numbers.txt
$ paste -d ':' letters.txt numbers.txt
A:1
B:2
C:

O que acontece quando um arquivo fornecido ao paste paralelo termina antes de outro?

Leitura de uma Entrada por stdin

Use - como operando de arquivo para ler essa posição de stdin:

$ printf 'admin\nviewer\n' | paste -d ':' names.txt -
alice:admin
bob:viewer

Em producer | paste names.txt -, o que significa o operando -?

Para praticar a mesclagem de dados orientados por linhas, experimente este laboratório:

  1. Processamento Simples de Texto — Aprenda a usar comandos como tr, col, join e paste para manipular e analisar dados textuais com eficiência.

Lição concluída

Você concluiu paste

Agora você sabe combinar entradas orientadas por linhas com alinhamento e delimitadores previsíveis.

  • Mescle linhas correspondentes de vários arquivos.

  • Substitua a tabulação padrão com -d.

  • Serialize as linhas de um arquivo com -s.

  • Interprete campos vazios provenientes de entradas mais curtas.

  • Use - quando uma entrada vier de stdin.

Salve seu progresso

Crie uma conta gratuita para salvar esta lição e continuar em qualquer dispositivo.

Criar uma conta gratuita
Próxima Lição
Voltar para Text-Fu