Estou escrevendo um arquivo de log para uma solução de backup.
A solução de backup é um comando simples de atualização 7-zip.
Gostaria de registrar quais arquivos ele faz backup. Se eu usar >> log.txt obterei o resultado, mas também muitas outras informações que o 7-zip gera que não quero.
Estou procurando uma maneira de registrar parcialmente o que está na tela. Não me importo de usar 7z .... >templog.txt e depois fazer algo no templog.txt antes de anexá-lo ao log.txt. Mas também não sei como remover seletivamente linhas do templog.txt da linha de comando.
Então acho que minha pergunta se resume: como posso remover as primeiras 10 linhas do templog.txt ou, alternativamente, redirecionar apenas parte da saída na tela para um arquivo de log?
Pergunta bônus: Como remover seletivamente linhas do templog.txt ou do redirecionamento de saída que não estão no início?
Responder1
Como posso remover as primeiras 10 linhas do templog.txt ou, alternativamente, redirecionar apenas parte da saída na tela para um arquivo de log?
Abaixo estão algumas maneiras diferentes de realizar o que você pedeomitindo linhas com certas stringsneles comFindstrou então apenasremover números de linha específicoscomSEDdo templog.txt antes de anexar o que contém ao arquivo de log completo do log.txt.
Usando FINDSTR
Isso omitirá que as strings entre aspas duplas que estão em templog.txt sejam anexadas ao log.txt
FINDSTR /V /I "string1 string2 string3 string4" templog.log>>log.txt
Isso omitirá as expressões regulares entre aspas duplas após cada /C:
opção que está em templog.txt de ser anexada ao log.txt, então você apenas precisa ter certeza de ter cada expressão regular que você precisa corresponder para omitir.
FINDSTR /V /R /C:"<regex1>" /C:"<regex2>" /C:"<regex3>" templog.log>>log.txt
Usando SED
Isso removerá as linhas 1 a 10 do templog.txt e, após essa operação, anexará o restante ao log.txt
sed -i -e "1,10d" templog.txt
Recursos adicionais
Responder2
PowerShell - Remover linhas específicas de um arquivo
Você pode usar os comandos do PowerShell abaixo para pular as primeiras cinco linhas usando o -Skip
parâmetro comSelecionar objetodo conteúdo do arquivo templog.txt e, em seguida, atualize-o com tudo, exceto as linhas do arquivo ignoradas para omitir.
(Get-Content "C:\path\templog.txt" | Select-Object -Skip 5) | Set-Content "C:\path\templog.txt"
Você pode usar os comandos do PowerShell abaixo usando o -Skip
parâmetro comSelecionar objetopara pular as primeiras cinco linhas do templog.txt e, em seguida, anexar todas, exceto essas linhas, ao arquivo log.txt.
(Get-Content "C:\path\templog.txt" | Select-Object -Skip 5) | Add-Content "C:\path\log.txt"