windows cmd ou powershell para pesquisar uma string em um arquivo?

0

em um arquivo txt eu tenho esta linha:

<em:version>0.0.0.2</em:version>

Qual cmd (dos ou powershell) eu posso usar para buscar isso?

0.0.0.2

    
por Elad Benda 12.12.2012 / 09:54

4 respostas

1
PS> '<em:version>0.0.0.2</em:version>' -replace '<[^>]+>'
0.0.0.2

# replace file content
(Get-Content file.txt) -replace '<[^>]+>'
    
por 12.12.2012 / 11:43
4

O PowerShell pode analisar diretamente o XML. Não há necessidade de expressões regulares. Aqui está um exemplo com um arquivo install.rdf do FireFox. (Eu estou supondo que seu arquivo pode ser algo assim.)

PS> [xml]$rdf = Get-Content .\install.rdf
PS> $rdf.RDF.Description.version
1.0
    
por 12.12.2012 / 23:21
1

tente isso

$fileContent=gc "path to text file"

$pattern =  '(?i)<em:version[^>]*>(.*)</em:version>'


$result = [Regex]::Matches($fileContent, $pattern)

$result | ForEach-Object {
  $_.Groups[1].Value
} 
    
por 12.12.2012 / 10:08
0

Que tal isso? Um comando DOS de uma linha:

for /f "usebackq tokens=2 delims=<>" %%A in ('type "File.txt" ^| find "<em:version>"') do echo.%%A
    
por 13.12.2012 / 00:41