Shell Script nosso de cada dia - Episódio 1

Publicado por Wagner Souza em 10/07/2015

[ Hits: 3.953 ]

Blog: https://medium.com/@souzaw

 


Shell Script nosso de cada dia - Episódio 1



Para ser um bom sysadmin Linux é preciso ter Shell Script no seu cardápio da manhã, tarde e noite; tendo em vista que este é a base de tudo no Linux. Não adianta saber instalar serviços se não consegue usar os comandos básicos para automatização de tarefas.

Nesta nova série, vou apresentar exemplos práticos de uso desta ferramenta poderosa.

Imagine que você tem um arquivo com nomes de pessoas, cidade e estado a que elas pertencem e você precisa acrescentar mais uma coluna com a idade. Abaixo uma sequência de comandos que vai nos ajudar a elucidar o problema:

1. O arquivo que eu tenho, de nome db.txt, possui essas informações:

ACÁCIA MARIA CARDOSO SANTOS;ARACAJU;SE
CAMILA DE FARIAS DANTAS;OLINDA;PE
DANIELA CABRAL PIZZI TEIXEIRA;ARACAJU;SE
CARLA DENISE SCHEREMETA;CASTRO;PR
EUDÊNIA MARIA MARQUES DE LIMA;IGUATU;CE
LEILA MACHADO CONDÉ;UBÁ;MG
LENORA CATHARINA MARTINS PINTO RODRIGO;MORRETES;PR
ADAILTON MARTINS SILVA;ARACAJU;TO
GLAUCIA MARIA REIS DE NORÕES;FORTALEZA;CE
GLEIDE NOGUEIRA MORAES BRASÍLIA;DF
DANY LUIZ DA SILVA;CRUZEIRO;DF
JULIANE CRISTINA COSTA OLIVEIRA;CURITIBA;PR
BARBARA MARIA DOS SANTOS;ARACAJU;SE

A primeira coisa que eu vou fazer é realizar um tratamento do arquivo eliminando linhas em branco que podem nos atrapalhar:

sed -i '/^$/d' db.txt

2. Vou gerar uma quantidade de números aleatórios para inserir como idades para cada pessoa da minha lista. Vou utilizar uma variável para contar o total de registros que tenho e gerar a quantidade exata de idades para cada pessoa:

CONTAR=$(cat db.txt | wc -l)

Depois de criar a variável, o for vai nos ajudar a gerar os números para dentro de um arquivo de nome numeros.txt. A variável $RANDOM gera números aleatórios e eu só vou precisar dos dois primeiros caracteres. Por isso utilizei o cut:

for ((i=0; i<$CONTAR; i++)); do echo $RANDOM | cut -c1-2; done >> numeros.txt

3. Após gerar um arquivo com as idades, vamos concatená-lo com o arquivo principal db.txt. Essa tarefa vai ser do comando paste:

paste -d';' db.txt numeros.txt > newdb.txt

Como o arquivo principal possui o delimitador ";", este será usado para unir os dois arquivos em um novo de nome newdb.txt.

4. Feito isso, vamos renomear este novo arquivo para o nome anterior:

mv newdb.txt db.txt

Pronto! Agora temos o arquivo db.txt com uma nova coluna com a idade de cada pessoa. Todos os comandos foram executados no terminal mas isso não o impede de criar um script e inserir todos esses comandos.

Espero que tenham gostado. Estudem os comandos e façam alterações. Aprendam e não decorem! Esse é o segredo.

Outras dicas deste autor

Guias das Melhores Práticas de Segurança para GNU/Linux

Servidor Proxy para uso do APT e ZYPPER - Configuração

Limitar acesso de mais de um usuário via SSH

Shell Script nosso de cada dia - Episódio 4

Exercício Prático LPIC 06

Leitura recomendada

Performance awk x grep

Backup no runlevel 0 (Slackware 11)

Onde está a linha que preciso editar? [Resolvido]

awk/gawk - Vídeo tutorial

Desligamento automático para conexão discada

  

Comentários
[1] Comentário enviado por xerxeslins em 10/07/2015 - 15:41h


Aguardando a próxima dica da série :)



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts