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.
Text-Fu · Lección 7
paste
Aprende a combinar líneas correspondientes o a serializar líneas con delimitadores configurables mediante `paste`.
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:
- Procesamiento sencillo de texto - Utiliza órdenes como
tr,col,joinypastepara 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