<html><head><style type='text/css'>p { margin: 0; }</style></head><body><div style='font-family: Arial; font-size: 12pt; color: #000000'><style>p { margin: 0; }</style><div style="font-family: Arial; font-size: 12pt; color: #000000"><p align="center">Olá, esta é a mais uma mensagem "Dicas &amp; Truques", contribuição 
de Chico Lopes, sendo direcionada a informáticos, seu conteúdo é de 
nível médio e tecnológico.
</p>
<hr>
<table>
<tbody><tr>
<td>Público alvo:</td>
<td><b>informáticos
</b></td></tr>
<tr>
<td>Nível:</td>
<td><b>MÉDIO
</b></td></tr>
<tr>
<td>Conteúdo:</td>
<td><b>tecnológico
</b></td></tr>
<tr>
<td>Objetivo:</td>
<td><b>Localizar arquivos com conteúdo específico</b>
</td></tr></tbody></table>
<hr>
<p>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.
</p><p><br>
Nessa hora a ferramenta <b><font face="Courier New, courier, monaco, monospace, sans-serif">grep </font></b>dos sistemas Linux (ou UNIX) vem em nosso auxílio, veja...
</p><p><br>
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 <font face="Courier New, courier, monaco, monospace, sans-serif" size="2"><b>grep --color -nir "&lt;table" *.htm*</b></font>
 vamos obter uma listagem dos arquivos que contém a sequencia de 
caracteres '<font face="Courier New, courier, monaco, monospace, sans-serif">&lt;table</font>', em maiúsculas ou minúsculas, indiferentemente, e
 de quebra em qual linha está ocorrendo a <i>string</i>, como abaixo:
</p>
<pre>$ grep --color -nir "&lt;table" *.htm*
<font color="#CC33CC">atd2CV-Unifesp.htm</font><font color="#009900">:9:</font>   <font color="#CC0000">&lt;table</font> border="0" align="xcenter" cellspacing="0" cellpadding="0"
<font color="#CC33CC">atd2CV-Unifesp.htm</font><font color="#009900">:67:</font>              <font color="#CC0000">&lt;table</font> align="left" border="0"
<font color="#CC33CC">atd2CV-Unifesp.htm</font><font color="#009900">:263:</font><font color="#CC0000">&lt;table</font> border="0"
<font color="#CC33CC">atd2CV-Unifesp.htm</font><font color="#009900">:487:</font>        <font color="#CC0000">&lt;table</font> border="0" align="left"
<font color="#CC33CC">atd2.htm</font><font color="#009900">:9:</font>  <font color="#CC0000">&lt;table</font> border="0" align="xcenter" cellspacing="0" cellpadding="0"
<font color="#CC33CC">atd2.htm</font><font color="#009900">:68:</font>              <font color="#CC0000">&lt;table</font> align="left" border="0"
<font color="#CC33CC">atd2.htm</font><font color="#009900">:320:</font><font color="#CC0000">&lt;taBle</font> border="0"
<font color="#CC33CC">atd2.htm</font><font color="#009900">:544:</font>        <font color="#CC0000">&lt;table</font> border="0" align="left"
<font color="#CC33CC">atma.htm</font><font color="#009900">:8:</font>  <font color="#CC0000">&lt;table</font> border="0" align="xcenter" cellspacing="0" cellpadding="0"
<font color="#CC33CC">atma.htm</font><font color="#009900">:66:</font>              <font color="#CC0000">&lt;table</font> align="left" border="0"
<font color="#CC33CC">atma.htm</font><font color="#009900">:545:</font>        <font color="#CC0000">&lt;table</font> border="0" align="left"
<font color="#CC33CC">base.html</font><font color="#009900">:4:</font>      <font color="#CC0000">&lt;table</font> border=1
$
</pre>
<p>Olhando mais de perto podemos ver o efeito do parâmetro <font face="Courier New, courier, monaco, monospace, sans-serif"><b>--color</b></font> (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.
</p><p><font face="courier new"><font color="magenta">atd2.htm</font><font color="green">:320:</font><font color="red">&lt;taBle</font> border="0"</font>
</p><p><br>
As opções demais opções utilizadas tem as seguintes funções:
</p>
<table>
<tbody><tr>
<td align="center"><font face="Courier New, courier, monaco, monospace, sans-serif"><b>n</b></font> </td>
<td> Mostra o número da linha onde ocorre a string
</td></tr>
<tr>
<td align="center"><font face="Courier New, courier, monaco, monospace, sans-serif"><b>i</b></font> </td>
<td> ignora letras maiúsculas / minúsculas
</td></tr>
<tr>
<td align="center"><font face="Courier New, courier, monaco, monospace, sans-serif"><b>r</b></font> </td>
<td> recorre aos subdiretórios na execução da busca
</td></tr></tbody></table>
<p><br>
É possivel obter mais informações sobre o comando e as opções com a opção <font face="Courier New, courier, monaco, monospace, sans-serif">--help</font> (<font face="Courier New, courier, monaco, monospace, sans-serif" size="2"><b>grep --help</b></font>), ou em seu manual <i>online</i> (<font face="Courier New, courier, monaco, monospace, sans-serif" size="2"><b>man 1 grep</b></font>), se instalado.</p><p><br>
</p><p>Imagine querer trocar o nome de uma base de dados em todos os <font face="Courier New, courier, monaco, monospace, sans-serif"><b>.def</b></font> que ela apareça e ter de editar <font face="Courier New, courier, monaco, monospace, sans-serif"><b>def</b></font> por <font face="Courier New, courier, monaco, monospace, sans-serif"><b>def</b></font> para saber em quais tem de fazer ou não alterações. É o <font face="Courier New, courier, monaco, monospace, sans-serif"><b>grep</b>
 </font>que vai te ajudar bastante nessa hora, principalmente, porque ele 
funciona, exatamente, desta forma em quase todas as distribuições.</p><p><br>
</p><p>Obs.: Se você utiliza Windows, fique tranquilo, existem programas
 equivalentes para linha de comando ou interface gráfica, basta procurar
 na Internet "<font face="Courier New, courier, monaco, monospace, sans-serif">grep para Windows</font>" e muitas alternativas te serão 
apresentadas.</p><p><br>
</p><p>Até a próxima!</p><hr><p><font size="1">http://wiki.bireme.org/pt/index.php/Dicas_e_truques</font></p><p><a href="http://wiki.bireme.org/pt/index.php/Encontrando_aquivos_com_conte%C3%BAdo_espec%C3%ADfico_no_Linux_%28007%29" target="_blank"><font size="1">http://wiki.bireme.org/pt/index.php/Encontrando_aquivos_com_conteúdo_específico_no_Linux_(007)</font></a></p><p><br> 
</p>
</div></div></body></html>