Eu tenho duas variáveis que contêm informações de várias linhas e eu quero colocá-las em coluna.
varA
retorna
Aug 01
Aug 04
Aug 16
Aug 26
e varB
retorna
04:25
07:28
03:39
10:06
se eu imprimir as duas variáveis, ele retornará
Aug01
Aug04
Aug16
Aug26
04:25
07:28
03:39
10:06
O que eu quero fazer é o seguinte:
Aug01 04:25
Aug04 07:28
Aug16 03:39
Aug26 10:06
Eu sou novo no Linux e gostaria de receber alguns conselhos, obrigado.
command-line
bash
text-processing
BNairb
fonte
fonte
Respostas:
Conheça
paste
, parte dos utilitários principais do GNU pré-instalados :paste
usa arquivos e não variáveis como entrada, então useibash
Process Substitution e apenas imprimi o conteúdo da variávelprintf
. O delimitador padrão entre colunas é queTAB
você pode alterar isso com a-d
opção, por exemplo,paste -d" "
para um único caractere de espaço. Para saber maispaste
, consulte o manual on - line ou executeinfo '(coreutils) paste invocation'
.fonte
Se você deseja apenas exibir as variáveis de texto lado a lado, o @dessert possui a solução mais simples (melhor?)
print
. No entanto, se você quiser manipular cada peça individualmente, poderá facilmente converter os vars em matrizes e percorrer isso.fonte
Se você quiser evitar utilitários externos e fazê-lo nativamente no shell, poderá usar
read
descritores de arquivos separados / strings here para cada variável:Embora muitas vezes seja considerado uma má prática usar o shell para processamento de texto, pode ser desculpado se você já tiver os dados em variáveis do shell.
fonte
Você pode fazer isso com a ferramenta POSIX
pr
:Resultado:
Ou para uma única guia:
Ou para espaço único:
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/pr.html
Ou com
column
doutil-linux
pacote:fonte