grep quebra a formatação do systemctl

1

Se eu chamar o comando systemctl sem grep, a formatação será exibida corretamente:

Agoraquerofiltrarapenasaslinhascom'yarn',masessalinhadetempoédivididaemduaspartes:

o mesmo acontece quando o console é duas vezes maior. Como posso consertar isso?

    
por stiv 10.10.2018 / 14:29

1 resposta

4

Quando a saída de systemctl não é enviada para um terminal, por exemplo se for canalizada para grep , ela permite que cada coluna de sua saída cresça o necessário para se ajustar o item mais longo da lista. Isso é o que está acontecendo aqui: algumas unidades na lista de unidades têm um nome muito longo e o alinhamento da saída de todas as unidades produz o grande espaço entre yarn.service e loaded failed failed .

Para filtrar a saída da unidade, use a correspondência de padrões internos de systemctl :

sudo systemctl list-units '*yarn*'

Você pode limitar a saída às linhas obtidas com grep com a opção --no-legend , evitar colorir e caracteres especiais com a opção --plain e evitar iniciar um pager com a opção --no-pager :

sudo systemctl list-units --plain --no-legend --no-pager '*yarn*'

Existem subcomandos melhores se você quiser recuperar o status de unidades específicas; veja, por exemplo, A maneira "correta" de testar se um serviço está sendo executado em um script .

    
por 10.10.2018 / 14:46