sábado, 28 de agosto de 2010

Shell Script para ler lista e buscar dependências em arquivos

Recentemente precisei fazer uma análise de dependências entre programas escritos em Pro*C e rotinas armazenadas em banco de dados.

Para realizar essa tarefa, gerei um arquivo com a lista de rotinas armazenadas no banco de dados (funções, procedures e packages), chamada "listaProc.txt" e um shell script que executa um loop nessa lista.
Nesse loop, para cada rotina listada, o script executa uma busca por ela nos arquivos da pasta atual e, gera o resultado da busca em um arquivo de resultados (arquivo "resultado.txt"), relacionando o nome da rotina com os arquivos onde ela é invocada.

A busca é realizada utilizando o comando grep -i.

Abaixo segue o código do Shell Script:
#!/bin/bash
for i in $(cat /home0/users/josbar/listaProc.txt)
do
grep -i "$i" *.pc >> resultado.txt
done
Depois de executado o script, basta carregar o arquivo "resultado.txt" em uma planilha como se fosse um arquivo "csv", delimitado pelo caracter ":" e fazer a análise.

No meu caso, o script foi útil para fazer a análise de dependência em programas Pro*C, mas pode ser utilizado para outros tipos de arquivos.

Referências:

Nenhum comentário: