Shell Script nosso de cada dia - Episódio 1

Publicado por Wagner Souza em 10/07/2015

[ Hits: 3.261 ]

Blog: https://zerotoherosec.blogspot.com/

 


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

Google Chrome no Fedora 24

Exercício Prático LPIC 06

Instalação do PopcornTime Community

Exercício Prático LPIC 02

Exercício Prático LPIC 10

Leitura recomendada

VirtualBox - Compartilhando pastas Linux vs Linux

Apagar linhas comentadas de arquivos

Exercício Prático LPIC 06

Conversão do catálogo de endereço do Thunderbird para usar no Mutt - Script

Reexecutando comandos do console

  

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