DEV Community

Pesquisando termos dentro de um texto

O que podemos fazer quando temos uma pasta cheia de textos e queremos saber se neles tem um determinado termo?
Abrir todos eles e ver um a um!!

Ok, pode não ser eficiente fazer isso manualmente, mas e se escrevermos uma função para fazer isso?

Podemos deixar o computador fazer essa validação e nos retornar onde e em qual arquivo encontrou ele.

Para fazer isso vamos utilizar a função Select-String, com ela podemos localizar textos, passando como parâmetro o arquivo que vamos verificar e o que queremos encontrar.

Como esse retorno pode ficar confuso no terminal, vamos gerar um arquivo na mesma pasta, colocando nele a correlação que encontramos.

function Pesquisar-Termo {
param (
[Parameter(Mandatory=$true, HelpMessage="Informe um termo para ser pesquisado")] # Colocamos uma mensagem caso o usuario inicie a funcao sem os parametros
[string] $termo,
$pasta = (Get-Location).Path # Definimos um valor padrao caso nenhum seja passado, nesse caso, a pasta onde o script foi executado
)
# Configuracoes
Clear-Host
Write-Host "Pesquisando $termo"
$hash = Get-Date -Format ddMMyy-mmhh
# Pega todos os arquivos de uma pasta
$arquivos = (Get-ChildItem -Path "$pasta" -File).Name
# Verifica o conteudo de cada arquivo
foreach ($arquivo in $arquivos) {
try {
Write-Host "Verificando arquivo: $arquivo"
$encontrei = Select-String -Path "$pasta\$arquivo" -Pattern "$termo"
Add-Content -Path "$pasta\Encontrar_$termo-$hash.txt" -Value $encontrei
}
catch {
$ErrorMessage = $_.Exception.Message # Recebe o erro
Write-Host "Erro: $ErrorMessage"
}
}
# Exibimos o retorno ao finalizar
Write-Host "Analise concluida"
Write-Host "Disponivel em: $pasta\Encontrar_$termo-$hash.txt"
}

Com algumas modificações, podemos utilizar essa mesma função para analisar LOGs e encontrar erros.

Heroku

This site is built on Heroku

Join the ranks of developers at Salesforce, Airbase, DEV, and more who deploy their mission critical applications on Heroku. Sign up today and launch your first app!

Get Started

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay