stringtranslate.com

pegar (Unix)

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 SmithBobby BrownSue MillerJenny Igotit

y que numbers.txt es otro archivo de texto sin formato que contiene la siguiente información:

555-1234555-9876555-6743867-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

Referencias

  1. ^ "paste(1) - Páginas del manual de OpenBSD".
  2. ^ "[TUHS] Un retrato de corte(1)".
  3. ^ "Pegar(1): Fusionar líneas de archivos - Página del manual de Linux".
  4. ^ "Puertos Win32 nativos de algunas utilidades GNU". unxutils.sourceforge.net .

Enlaces externos