paste es una utilidad de línea de comandos de Unix que se utiliza para unir archivos horizontalmente (fusión paralela) generando líneas que consisten en las líneas secuencialmente correspondientes de cada archivo especificado, separadas por tabulaciones, en la salida estándar .
Historia
La versión original de Bell Labs fue escrita por Gottfried WR Luderer. [1] [2] La versión pasteincluida en GNU coreutils fue escrita por David M. Ihnat y David MacKenzie. [3] El comando está disponible como un paquete separado para Microsoft Windows como parte de la colección UnxUtils de puertos Win32 nativos de utilidades comunes de tipo Unix de GNU. [4]
Uso
La utilidad de pegar se invoca con la siguiente sintaxis:
pegar [ opciones ] [ archivo1 ..]
Descripción
Una vez invocado, paste leerá todos los argumentos de archivo . Para cada línea correspondiente, paste agregará el contenido de cada archivo en esa línea a su salida junto con una tabulación. Cuando haya completado su operación para el último archivo, paste generará un carácter de nueva línea y pasará a la siguiente línea.
La operación de pegar finaliza después de que todos los flujos devuelvan el final del archivo. La cantidad de líneas en el flujo de salida será igual a la cantidad de líneas en el archivo de entrada con la mayor cantidad de líneas. Los valores faltantes se representan mediante cadenas vacías.
Si bien es potencialmente útil, una opción para que paste emita una cadena alternativa para un campo faltante (como "NA") no es estándar.
Una secuencia de registros vacíos en la parte inferior de una columna del flujo de salida puede o no haber estado presente en el archivo de entrada correspondiente a esa columna como registros vacíos explícitos, a menos que sepa que el archivo de entrada suministró todas las filas explícitamente (por ejemplo, en el caso canónico donde todos los archivos de entrada tienen de hecho el mismo número de líneas).
Opciones
La utilidad de pegar acepta las siguientes opciones:
-d|--delimiters delimiters, que especifica una lista de delimitadores que se utilizarán en lugar de tabuladores para separar valores consecutivos en una sola línea. Cada delimitador se utiliza por turno; cuando se agota la lista, el pegado comienza de nuevo en el primer delimitador.
-s|--serial, lo que hace que paste agregue los datos en serie en lugar de en paralelo; es decir, de manera horizontal en lugar de vertical.
Ejemplos
Para los siguientes ejemplos, supongamos que names.txt es un archivo de texto sin formato que contiene la siguiente información:
Marco Smith Bobby Brown Sue Miller Jenny Igotit
y que numbers.txt es otro archivo de texto sin formato que contiene la siguiente información:
555-1234 555-9876 555-6743 867-5309
El siguiente ejemplo muestra la invocación de pegar con names.txt y numbers.txt así como la salida resultante:
$ pegar nombres.txt números.txt
Mark Smith 555-1234
Bobby Brown 555-9876
Sue Miller 555-6743
Jenny Igotit 867-5309
Cuando se invoca con la --serialopción ( -sen BSD o sistemas más antiguos), la salida de pegar se ajusta de manera que la información se presente de manera horizontal:
$ paste --serial nombres.txt números.txt
Mark Smith Bobby Brown Sue Miller Jenny Igotit
555-1234 555-9876 555-6734 867-5309
Finalmente, el uso de la --delimitersopción ( -den BSD o sistemas más antiguos) se ilustra en el siguiente ejemplo:
$ paste --delimiters .names.txt numbers.txt Mark Smith.555-1234 Bobby Brown.555-9876 Sue Miller.555-6743 Jenny
Igotit.867-5309
Como ejemplo de uso de ambos, el comando pegar se puede utilizar para concatenar varias líneas consecutivas en una sola fila:
$ paste --serial --delimiters '\t\n' names.txt
Mark Smith Bobby Brown Sue Miller Jenny Igotit
Véase también
- unirse
- cortar
- Lista de comandos de Unix
- lam(1), pegado formateado con ancho y justificación; no es el núcleo de Unix
Referencias
- ^ "paste(1) - Páginas del manual de OpenBSD".
- ^ "[TUHS] Un retrato de corte(1)".
- ^ "Pegar(1): Fusionar líneas de archivos - Página del manual de Linux".
- ^ "Puertos Win32 nativos de algunas utilidades GNU". unxutils.sourceforge.net .
Enlaces externos
- "PASTE(1) - Manual de comandos generales de FreeBSD" . Consultado el 12 de agosto de 2010 .