[Reddes.bvs-tech] [Dicas&Truques] Encontrando aquivos com conteúdo específico no Linux (007)

Francisco J D M Lopes Santos francisco.lopes at bireme.org
Fri Jul 20 20:10:54 BRST 2012




Olá, esta é a mais uma mensagem "Dicas & Truques", contribuição de Chico Lopes, sendo direcionada a informáticos, seu conteúdo é de nível médio e tecnológico. 
	Público alvo: 	informáticos 
	Nível: 	MÉDIO 
	Conteúdo: 	tecnológico 
	Objetivo: 	Localizar arquivos com conteúdo específico 


Suponha que você precisa mudar algo em todas as tabelas que estão nas páginas do site da instituição. Deve haver muitas páginas e você tem de encontrar as que tem tabelas dentro. 


Nessa hora a ferramenta grep dos sistemas Linux (ou UNIX) vem em nosso auxílio, veja... 


Por exemplo, estamos no diretório /home/site1/public_html, daqui para baixo temos os arquivos htm e html das páginas. Com o comando grep --color -nir "<table" *.htm* vamos obter uma listagem dos arquivos que contém a sequencia de caracteres ' <table ', em maiúsculas ou minúsculas, indiferentemente, e de quebra em qual linha está ocorrendo a string , como abaixo: $ grep --color -nir "<table" *.htm* atd2CV-Unifesp.htm :9: <table border="0" align="xcenter" cellspacing="0" cellpadding="0" atd2CV-Unifesp.htm :67: <table align="left" border="0" atd2CV-Unifesp.htm :263: <table border="0" atd2CV-Unifesp.htm :487: <table border="0" align="left" atd2.htm :9: <table border="0" align="xcenter" cellspacing="0" cellpadding="0" atd2.htm :68: <table align="left" border="0" atd2.htm :320: <taBle border="0" atd2.htm :544: <table border="0" align="left" atma.htm :8: <table border="0" align="xcenter" cellspacing="0" cellpadding="0" atma.htm :66: <table align="left" border="0" atma.htm :545: <table border="0" align="left" base.html :4: <table border=1
$ 

Olhando mais de perto podemos ver o efeito do parâmetro --color (que é opcional) que faz o nome do arquivo aparecer em uma cor, o numero da linha em outra e por fim o texto procurado em outra cor, deixando o restante na cor padrão do terminal. 

atd2.htm :320: <taBle border="0" 


As opções demais opções utilizadas tem as seguintes funções: 	n 	Mostra o número da linha onde ocorre a string 
	i 	ignora letras maiúsculas / minúsculas 
	r 	recorre aos subdiretórios na execução da busca 


É possivel obter mais informações sobre o comando e as opções com a opção --help ( grep --help ), ou em seu manual online ( man 1 grep ), se instalado. 




Imagine querer trocar o nome de uma base de dados em todos os .def que ela apareça e ter de editar def por def para saber em quais tem de fazer ou não alterações. É o grep que vai te ajudar bastante nessa hora, principalmente, porque ele funciona, exatamente, desta forma em quase todas as distribuições. 




Obs.: Se você utiliza Windows, fique tranquilo, existem programas equivalentes para linha de comando ou interface gráfica, basta procurar na Internet " grep para Windows " e muitas alternativas te serão apresentadas. 




Até a próxima! 


http://wiki.bireme.org/pt/index.php/Dicas_e_truques 

http://wiki.bireme.org/pt/index.php/Encontrando_aquivos_com_conteúdo_específico_no_Linux_(007) 


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://listas.bireme.br/pipermail/reddes.bvs-tech/attachments/20120720/57a703f5/attachment-0001.html 


More information about the Reddes.bvs-tech mailing list