Tela de linha de comando parcialmente enviada para arquivo

Tela de linha de comando parcialmente enviada para arquivo

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 -Skipparâ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 -Skipparâ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"

Recursos adicionais

informação relacionada