Mesclar coluna da saída do comando em uma única linha

0

Estou usando dnf list installed para listar todos os pacotes instalados, que retornam a seguinte saída:

zenity.x86_64                                                                         3.22.0-1.fc25                                                               @@commandline          
zip.x86_64                                                                            3.0-16.fc24                                                                 @@commandline          
zlib.i686                                                                             1.2.8-10.fc24                                                               @@commandline          
zlib.x86_64                                                                           1.2.8-10.fc24                                                               @@commandline          
zlib-devel.x86_64                                                                     1.2.8-10.fc24                                                               @@commandline          
znc.x86_64                                                                            1.6.5-1.fc25                                                                @@commandline 

Estou interessado apenas nos nomes dos pacotes, ou seja, no valor da primeira coluna, mas apenas até o . (por exemplo, znc.x86_64 - > znc ).

Como eu poderia mesclar os resultados dessa saída de comando em uma única linha separada por espaços (por exemplo, zip zlib zlib-devel znc )?

    
por syntagma 16.05.2017 / 21:15

1 resposta

0
Solução de

awk + ordem :

dnf list installed | awk -F. -v ORS="
zenity zip zlib zlib-devel znc
" '{print $1" "}' | sort -zu && echo ""

A saída deve se parecer com:

dnf list installed | awk -F. -v ORS="
zenity zip zlib zlib-devel znc
" '{print $1" "}' | sort -zu && echo ""

-v ORS="sort -zu" - considerando a entrada como registros com terminação zero

%code% - para obter valores únicos com terminação zero

    
por 16.05.2017 / 21:53