![Usando o PowerShell para limpar arquivo de texto](https://rvso.com/image/668805/Usando%20o%20PowerShell%20para%20limpar%20arquivo%20de%20texto.png)
Estou lutando com isso e me perguntando se alguém pode ajudar. Eu tenho um arquivo de texto grande que contém dados extras que desejo remover. Aqui está um exemplo do arquivo de entrada:
Text In Page - 1
S
Dept
l<m RKB)
"1915
slightly 234234
"sil dsf 56
"gr
gl
1920 100
1925 100
1930 100 Cls
"1935 100 Cl
Text In Page - 2
l<m RKB)
"1915
slightly
"sil
"gr
glauc
1920 100
1925 100
1930 100 Cls
"1935 100 Cl
Quero remover o seguinte:
- Quaisquer linhas em branco
- Qualquer "no início das linhas
- Quaisquer linhas que comecem com uma letra AZ, az
Então, com o exemplo acima, eu ficaria com
1915
1920 100
1925 100
1930 100 Cls
1935 100 Cl
1915
1920 100
1925 100
1930 100 Cls
1935 100 Cl
Responder1
Estou pensando:
(gc D:\test.txt) -replace '^"' | sls '\S' | sls -NotMatch '^[A-Za-z]' | sc out.txt
O que faz:
- obtenha as linhas do arquivo e, se o primeiro caractere for uma aspa, substitua-o por nada
- selecione linhas que correspondam a "não espaços em branco" (ou seja, linhas vazias são filtradas)
- selecione linhas que não começam com A-Za-z
- grava os resultados em out.txt
Existem várias maneiras de escrever a versão longa, dependendo de quanto você gosta de encadear coisas com o pipeline em vez de trabalhar com variáveis continuamente, mas está fazendo o seguinte:
$lines = Get-Content D:\test.txt
$lines = $lines -replace '^"'
$lines = $lines | Select-String '\S'
$lines = $lines | Select-String -NotMatch '^[A-Za-z]'
$lines | Set-Content out.txt