paste
100%

Text-Fu · Lección 7

paste

Aprende a combinar líneas correspondientes o a serializar líneas con delimitadores configurables mediante `paste`.

La orden paste combina líneas en forma de columnas. De manera predeterminada, toma una línea de cada archivo de entrada, las une con una tabulación y repite el proceso hasta que todas las entradas llegan al final.

Combinación de archivos en paralelo

Crea dos archivos pequeños:

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

Pasa ambos archivos a paste:

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

El espacio visible entre columnas es una tabulación. A diferencia de cat, que escribe un archivo completo después de otro, paste combina las líneas correspondientes.

first.txt contiene A y después B, mientras que second.txt contiene 1 y después 2. ¿Qué produce paste first.txt second.txt de forma predeterminada?

Elección de un delimitador

Utiliza -d LIST para sustituir la tabulación predeterminada. Para usar dos puntos:

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

Entrecomilla los delimitadores que tengan significado para la shell. paste puede recorrer varios caracteres delimitadores si la lista contiene más de uno, pero un único carácter es la opción más sencilla al construir dos columnas.

¿Qué orden une con dos puntos las líneas correspondientes de names.txt y roles.txt?

Serialización de las líneas de un archivo

La opción -s procesa cada archivo de entrada en serie y une sus líneas en una sola línea de salida. Crea un archivo con una palabra por línea:

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

Combina -s con -d para elegir el separador:

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

Si proporcionas varios archivos con -s, cada uno se convierte en su propia línea de salida.

¿Qué orden une todas las líneas de words.txt en una única línea separada por espacios?

Tratamiento de entradas con longitudes distintas

Cuando los archivos de entrada paralelos tienen cantidades de líneas distintas, paste continúa hasta terminar el archivo más largo. Los valores ausentes del archivo más corto se convierten en campos vacíos:

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

¿Qué ocurre cuando un archivo pasado a paste en modo paralelo termina antes que otro?

Lectura de una entrada desde stdin

Utiliza - como operando de archivo para leer esa posición desde stdin:

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

En producer | paste names.txt -, ¿qué significa el operando -?

Para practicar la combinación de datos orientados a líneas, prueba este laboratorio:

  1. Procesamiento sencillo de texto - Utiliza órdenes como tr, col, join y paste para manipular y analizar datos de texto.

Lección completada

Has completado paste

Ahora puedes combinar entradas orientadas a líneas con una alineación y unos delimitadores previsibles.

  • Combinar las líneas correspondientes de varios archivos.

  • Sustituir la tabulación predeterminada con -d.

  • Serializar las líneas de un archivo con -s.

  • Interpretar los campos vacíos de entradas más cortas.

  • Utilizar - cuando una entrada proceda de stdin.

Guarda tu progreso

Crea una cuenta gratuita para guardar esta lección y continuar en cualquier dispositivo.

Crear una cuenta gratuita
Siguiente Lección
Volver a Text-Fu