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.