Re: Substuição de conteúdo - Shell Script
Citação:
Postado originalmente por
danielvasc
Ainda não rolou :(
As informações ficaram ambíguas, tudo distinto. To na merda cara. Tentei usar os dois métodos de vocês, porém não foi eficaz.
Obrigado mesmo assim.
Daniel, você errou em alguma coisa. Veja que, com base no que você solicitou, os scripts atendem perfeitamente, tanto aquele feito pelo colega caicarabruno, quanto o meu também.
Citação:
Postado originalmente por
danielvasc
Seria basicamente assim (vou esboçar a ideia):
No arquivo passwd, lê a primeira palavra da primeira linha (no caso, o nome de usuário). Seguindo o meu exemplo, seria o usuário "zanella". Depois, faz uma comparação: Se este usuário estiver no arquivo shadow, jogar essa linha do shadow em um novo arquivo. Dessa maneira, os dois arquivos iam conter o mesmo número de linhas, com os mesmos usuários.
Experimente o seguinte:
Código :
cd /tmp
cut -d : -f 1 /etc/passwd | sort -fbn > 1.txt
cut -d : -f 1 /etc/shadow | sort -fbn > 2.txt
diff 1.txt 2.txt
rm 1.txt 2.txt
Veja se dá certo. Aqui fiz simulações e funcionou.
Re: Substuição de conteúdo - Shell Script
Citação:
Postado originalmente por
trober
Daniel, você errou em alguma coisa. Veja que, com base no que você solicitou, os scripts atendem perfeitamente, tanto aquele feito pelo colega
caicarabruno, quanto o meu também.
Experimente o seguinte:
Código :
cd /tmp
cut -d : -f 1 /etc/passwd | sort -fbn > 1.txt
cut -d : -f 1 /etc/shadow | sort -fbn > 2.txt
diff 1.txt 2.txt
rm 1.txt 2.txt
Veja se dá certo. Aqui fiz simulações e funcionou.
Bom, utilizando o comando "diff" realmente funciona, porém, ele me retorna um novo arquivo todo desorganizado. Eu preciso que ele compare, se existir o usuário em shadow, pega essa linha do shadow que tem este user e joga em um novo arquivo. Mas isso não acontece. Ele pega e joga apenas algo como:
Re: Substuição de conteúdo - Shell Script
Citação:
Postado originalmente por
danielvasc
Bom, utilizando o comando "diff" realmente funciona
Sim, disso não se tem dúvida :)
Citação:
Postado originalmente por
danielvasc
porém, ele me retorna um novo arquivo todo desorganizado. Eu preciso que ele compare, se existir o usuário em shadow, pega essa linha do shadow que tem este user e joga em um novo arquivo. Mas isso não acontece. Ele pega e joga apenas algo como:
Esta saída de comando está mostrando a diferença, com a informação do número da linha, em relação ao arquivo de origem e de destino.
Para fazer o que você precisa, baseado neste adendo de solicitação, modifique então o script do caicarabruno, e troca /etc/shadow por /etc/passwd, e vive-versa. Dará certo para o que você precisa, pois será tratado de B para A, e não de A para B.
Re: Substuição de conteúdo - Shell Script
Citação:
Postado originalmente por
trober
Sim, disso não se tem dúvida :)
Esta saída de comando está mostrando a diferença, com a informação do número da linha, em relação ao arquivo de origem e de destino.
Para fazer o que você precisa, baseado neste adendo de solicitação, modifique então o script do caicarabruno, e troca /etc/shadow por /etc/passwd, e vive-versa. Dará certo para o que você precisa, pois será tratado de B para A, e não de A para B.
Não resolveu o meu problema.
Bom, eu tentei da seguinte maneira:
#!/bin/bash
cut -d : -f 1 /etc/passwd > passwd-novo
cut -d : -f 1 /etc/shadow > shadow-novo
grep -f passwd-novo shadow-novo > resultado.txt
################################################
Bom, ele foi útil. Porém, agora eu tenho um arquivo chamado "resultado.txt" contendo os usuários que eu preciso, mas, o resto do conteúdo da linha não tenho dentro deste arquivo. Como eu consigo fazer para ele "grepar" cada uma das linhas do /etc/shadow? Por exemplo, dentro deste arquivo resultado.txt tenho milhares de linhas assim:
joao
maria
pedro
felipe
renato
Então, eu queria "grepar" joao em /etc/shadow e jogar o resultado em "arquivofinal". Entende?
Re: Substuição de conteúdo - Shell Script
Rss, etsou quase mandando vc usar o google! - "OPA MANDEI".
Cara ao usar o CUT vc esta copiando do arquivo apenas aquilo que você incialemente disse que seria necessário.
Como você mesmo disse, é só grepar o arquivo resultado no /etc/shadow.
grep resultado.txt /etc/shadow | tee resultado-novo.txt
Será que isso resolve Trober ?