Como formatar uma palavra por linha de saída

3

Eu entrei no sistema linux e tentei obter todos os usuários atuais. Eu usei o comando users no terminal e o resultado é exibido como "user1 user2 user3 user4".

Existe alguma maneira de quebrar a linha de nome de usuário e fazer com que cada nome de usuário ocupe uma linha?

    
por Yujian 01.10.2017 / 17:33

5 respostas

4

users | tr -s ' ' '\n'

Isso levará a saída do utilitário users e substituirá todos os espaços por novas linhas usando tr , removendo várias novas linhas consecutivas do resultado (com -s ).

Canalize esse sort -u para obter nomes de usuário exclusivos.

    
por 01.10.2017 / 18:16
2

Existem provavelmente melhores formas, mas:

for user in $(users); do echo "$user"; done

ou usando o comando fmt :

users | fmt -w 1
    
por 01.10.2017 / 17:38
0

Eu iria com isso, aproveitando 'who', awk, sort e uniq.

who | awk '{ print $1 }' | sort | uniq

Isso pressupõe que você deseja nomes de usuário exclusivos e não cada sessão de login.

    
por 01.10.2017 / 17:59
0

Solução mais simples, sem tubo usado:

printf '%s\n' $(users)
    
por 01.10.2017 / 19:59
-1

de link esta solução tem 6 votos positivos:

users | xargs -n 1
    
por 11.10.2018 / 16:10