Dando início a uma série de dicas de como utilizar os recursos de Shell Script para facilitar atividades do cotidiano.
Para esse desafio vou utilizar os recursos do Shell Script. É preciso entender que a média geral das idades é a soma desta divido pela quantidade de pessoas.
Vou criar uma variável para somar as idades:
$ SOMA=$(echo $(cut -d':' -f2 cadastro | tr '\n' '+')0 | bc)
Deduzindo que você já tem um arquivo chamado cadastro e que os campos estão separados por “:”, o comando cut vai pegar o segundo campo deste arquivo e o seu resultado será canalizado, com o | (pipe), para o comando tr que vai substituir tudo o que for espaço (\n) pelo sinal de +. Ao final e coloquei um 0 zero, pois na linha onde ficaria os números, após o último, ficaria uma sinal de + dando erro na hora de somar com a calculadora bc. Como todo número somado com zero é ele mesmo, não vai ocorrer erros.
A segunda variável:
$ CONT=$(cut -d':' -f1 cadastro | wc -l)
Retorna o total de pessoas. Lembre-se que o comando wc -l vai contar o total de linhas do arquivo cadastro.
Quase pronto! Agora vou pegar essas duas variáveis e vou tirar a média pela divisão das duas:
$ echo "scale=2; $SOMA/$CONT" | bc
Utilizei o scale para exibir o resultado com duas casas decimais. Com isso o nosso problema foi resolvido os comandos e recursos do Shell!
Deixe um comentário com suas dúvidas os sugestões.
OBS.: Para treinar os comandos utilizados, crie uma arquivo de nome cadastro e insira nomes e números para representar as idades das pessoas, separados por : como no exemplo:
mario:10
patricia:23
joão:34
lucas:10
Saia do arquivo salvando-o e mãos na massa para treinar os comando acima.
Para esse desafio vou utilizar os recursos do Shell Script. É preciso entender que a média geral das idades é a soma desta divido pela quantidade de pessoas.
Vou criar uma variável para somar as idades:
$ SOMA=$(echo $(cut -d':' -f2 cadastro | tr '\n' '+')0 | bc)
Deduzindo que você já tem um arquivo chamado cadastro e que os campos estão separados por “:”, o comando cut vai pegar o segundo campo deste arquivo e o seu resultado será canalizado, com o | (pipe), para o comando tr que vai substituir tudo o que for espaço (\n) pelo sinal de +. Ao final e coloquei um 0 zero, pois na linha onde ficaria os números, após o último, ficaria uma sinal de + dando erro na hora de somar com a calculadora bc. Como todo número somado com zero é ele mesmo, não vai ocorrer erros.
A segunda variável:
$ CONT=$(cut -d':' -f1 cadastro | wc -l)
Retorna o total de pessoas. Lembre-se que o comando wc -l vai contar o total de linhas do arquivo cadastro.
Quase pronto! Agora vou pegar essas duas variáveis e vou tirar a média pela divisão das duas:
$ echo "scale=2; $SOMA/$CONT" | bc
Utilizei o scale para exibir o resultado com duas casas decimais. Com isso o nosso problema foi resolvido os comandos e recursos do Shell!
Deixe um comentário com suas dúvidas os sugestões.
OBS.: Para treinar os comandos utilizados, crie uma arquivo de nome cadastro e insira nomes e números para representar as idades das pessoas, separados por : como no exemplo:
mario:10
patricia:23
joão:34
lucas:10
Saia do arquivo salvando-o e mãos na massa para treinar os comando acima.
Comentários
Postar um comentário