Como obter a saída 'yum list' para ficar em uma linha ao obter a saída via comando ssh remoto?

5

Quando executo o SSH em uma máquina com ssh machine e execuo yum list , ele exibe tudo o que está instalado como esperado e, o mais importante, cada item está em uma linha da seguinte forma:

xz-devel.i386                                                                                                        4.999.9-0.3.beta.20091007git.el5                                                                  base            
xz-devel.x86_64                                                                                                      4.999.9-0.3.beta.20091007git.el5                                                                  base            
xz-libs.i386                                                                                                         4.999.9-0.3.beta.20091007git.el5                                                                  base            
xz-lzma-compat.x86_64                                                                                                4.999.9-0.3.beta.20091007git.el5                                                                  base            

Mas, ao fazer isso remotamente com ssh machine 'yum list' ou até mesmo canalizando para o grep enquanto no servidor com yum list | grep xz -C 3 , as linhas da saída são "truncadas" e muito mais curtas, assim:

xz-devel.i386                              4.999.9-0.3.beta.20091007git.el5
                                                                       base     
xz-devel.x86_64                            4.999.9-0.3.beta.20091007git.el5
                                                                       base     
xz-libs.i386                               4.999.9-0.3.beta.20091007git.el5
                                                                       base     
xz-lzma-compat.x86_64                      4.999.9-0.3.beta.20091007git.el5
                                                                       base     

Como posso fazer com que o tamanho da linha não diminua assim? Meu desejo final é canalizar isso para tee e então fazer algum processamento no arquivo enviado para todos os meus hosts via ansible.

Parece que isso está ocorrendo devido a algum tipo de "terminal virtual" como parte do SSH / tubulação porque eu posso obter o mesmo comportamento se eu reduzir o tamanho do meu terminal onde as linhas quebram ao executar yum list . Assim, eu suponho que a adição do pipe de alguma forma diz a yum list que a largura do terminal é apenas X colunas

    
por Mitch 07.04.2016 / 17:49

2 respostas

2

Instale expect, que vem com unbuffer (1), e execute:

# unbuffer yum repolist
    
por 27.01.2017 / 10:28
1

Por esta resposta fornecida nos comentários por @thrig I foi capaz de obtê-lo a saída corretamente, fazendo

yum list installed | xargs -n3 | column -t 
    
por 08.04.2016 / 20:52