Eu tenho um exemplo de arquivo / etc / passwd como este:
tom:x:1000:1000:Work:/home/tom:/bin/bash
george:x:1000:1000:Work:/home/george:/bin/bash
bla:x:1000:1000:Work:/home/bla:/bin/bash
boo:x:1000:1000:Work:/home/boo:/bin/bash
bee:x:1000:1000:Work:/root/list:/bin/bash
Estou tentando listar todos os usuários com uma pasta pessoal /home/
.
eu escrevi
cat ~/Desktop/e.txt |awk -F ":" '{if ($6 ~/^/home/) print $1;}'
onde e.txt é o texto que copiei aqui.
Entendo que há um problema com a barra invertida, que é um caractere de escape, mas como corrigi-lo para que eu possa listá-los em uma linha de um comando?
grep home e.txt | cut -d ":" -f 1
. Parabéns pelo seu prêmio UUOC. No entanto, essa não é uma boa solução. E se houver um serviço "homebackups" executado sob um usuário separado com o nome do daemon? Isso é um falso positivo.
cat > tool
variante dessas linhas de comando porque pode melhorar a clareza mantendo o fluxo da esquerda para a direita da entrada-processamento-saída da cadeia de tubos. Ele é menos eficiente, mas quase sempre minimamente assim. Isso também torna a adição de uma barra de progresso relevante e útil ao executar interativamente muito óbvia (substitua cat
por pv
se estiver instalada).
cat
ferramentas comoawk
oused
semelhantes, pois elas podem receber o nome do arquivo como argumento.