A veces, mientras trabaja en la línea de comandos en Linux, puede surgir una situación en la que tenga que fusionar líneas de varios archivos para crear datos más significativos/útiles. Bueno, te alegrará saber que existe una utilidad de línea de comando pegar que hace esto por ti. En este tutorial, analizaremos los conceptos básicos de este comando, así como las funciones principales que ofrece mediante ejemplos fáciles de entender.
Pero antes de hacerlo, vale la pena mencionar que todos los ejemplos mencionados en este artículo han sido probados en Ubuntu 16.04 LTS.
Comando de pegar de Linux
Como ya se mencionó anteriormente, el comando pegar fusiona líneas de archivos. Esta es la sintaxis de la herramienta:
paste [OPTION]... [FILE]...
Y así es como lo explica el mago de la pasta:
Write lines consisting of the sequentially corresponding lines from each FILE, separated by TABs,
to standard output. With no FILE, or when FILE is -, read standard input.
Los siguientes ejemplos con estilo de preguntas y respuestas le darán una mejor idea de cómo pegar funciona.
P1. ¿Cómo unir líneas de múltiples archivos usando el comando pegar?
Supongamos que tenemos tres archivos:archivo1.txt, archivo2.txt y archivo3.txt, con los siguientes contenidos:
Y la tarea es fusionar líneas de estos archivos de manera que cada fila del resultado final contenga índice, país y continente, luego puede hacerlo usando pegar de la siguiente manera:
paste file1.txt file2.txt file3.txt
P2. ¿Cómo aplicar delimitadores al usar pegar?
A veces, puede haber un requisito para agregar un carácter delimitador entre las entradas de cada fila resultante. Esto se puede hacer usando -d opción de línea de comando, que requiere que proporcione el carácter delimitador que desea usar.
Por ejemplo, para aplicar dos puntos (:) como carácter delimitador, use el comando pegar de la siguiente manera:
paste -d : file1.txt file2.txt file3.txt
Aquí está el resultado que este comando produjo en nuestro sistema:
P3. ¿Cómo cambiar la forma en que se fusionan las líneas?
De forma predeterminada, el comando pegar fusiona líneas de manera que las entradas de la primera columna pertenecen al primer archivo, las de la segunda columna pertenecen al segundo archivo, y así sucesivamente. Sin embargo, si lo desea, puede cambiar esto para que la operación de combinación se realice por filas.
Esto lo puedes hacer usando la -s opción de línea de comando.
paste -s file1.txt file2.txt file3.txt
El siguiente es el resultado:
P4. ¿Cómo usar múltiples delimitadores?
Sí, también puede usar varios delimitadores. Por ejemplo, si desea utilizar tanto :como |, puede hacerlo de la siguiente forma:
paste -d ':|' file1.txt file2.txt file3.txt
El siguiente es el resultado:
P5. ¿Cómo asegurarse de que las líneas combinadas terminen en NUL?
De forma predeterminada, las líneas fusionadas mediante pegado terminan en una nueva línea. Sin embargo, si lo desea, puede hacer que terminen en NUL, algo que puede hacer usando -z opción.
paste -z file1.txt file2.txt file3.txt
Conclusión
Como la mayoría de ustedes estaría de acuerdo, el pegar El comando no es difícil de entender y usar. Puede ofrecer un conjunto limitado de opciones de línea de comandos, pero la herramienta hace lo que dice. Puede que no lo necesites a diario, pero pega puede ser un ahorro en tiempo real en algunos escenarios. En caso de que lo necesite, aquí está la página de manual de la herramienta.