Tengo dos variables que contienen información de varias líneas y quiero agruparlas.
varA
devoluciones
Aug 01
Aug 04
Aug 16
Aug 26
y varB
vuelve
04:25
07:28
03:39
10:06
si imprimo ambas variables, devuelve
Aug01
Aug04
Aug16
Aug26
04:25
07:28
03:39
10:06
Lo que quiero hacer es lo siguiente:
Aug01 04:25
Aug04 07:28
Aug16 03:39
Aug26 10:06
Soy nuevo en Linux y agradecería algunos consejos, gracias.
command-line
bash
text-processing
BNairb
fuente
fuente
Respuestas:
Meet
paste
, parte de las utilidades principales de GNU preinstaladas :paste
toma archivos y no variables como entrada, por lo que utilicébash
Process Substitution y simplemente imprimí el contenido variable conprintf
. El delimitador predeterminado entre columnas esTAB
, puede cambiar eso con la-d
opción, por ejemplo,paste -d" "
para un solo carácter de espacio. Para obtener más información,paste
consulte el manual en línea o ejecúteloinfo '(coreutils) paste invocation'
.fuente
Si solo desea mostrar las variables de texto una al lado de la otra, @dessert tiene la solución más simple (¿la mejor?)
print
. Sin embargo, si desea poder manipular cada pieza individualmente, puede convertir fácilmente los vars en matrices y recorrerlo.fuente
Si desea evitar utilidades externas y hacerlo de forma nativa en el shell, puede usar
read
descriptores de archivo separados / cadenas aquí para cada variable:Aunque a menudo se considera una mala práctica usar el shell para el procesamiento de texto, puede excusarse en el caso de que ya tenga los datos en las variables del shell.
fuente
Puede hacer esto con la herramienta POSIX
pr
:Resultado:
O para una sola pestaña:
O para un solo espacio:
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/pr.html
O con
column
delutil-linux
paquete:fuente