Ich schreibe eine Protokolldatei für eine Backup-Lösung.
Die Backup-Lösung ist ein einfacher 7-Zip-Update-Befehl.
Ich möchte protokollieren, welche Dateien gesichert werden. Wenn ich >> log.txt verwende, erhalte ich das Ergebnis, aber auch viele andere Informationen, die 7-zip ausgibt und die ich nicht haben möchte.
Ich suche nach einer Möglichkeit, die Bildschirmanzeige teilweise zu protokollieren. Ich habe nichts dagegen, 7z .... >templog.txt zu verwenden und dann etwas mit templog.txt zu machen, bevor ich es an log.txt anhänge. Aber ich weiß auch nicht, wie ich über die Befehlszeile selektiv Zeilen aus templog.txt entfernen kann.
Meine Frage läuft also darauf hinaus: Wie kann ich die ersten 10 Zeilen aus templog.txt entfernen oder alternativ nur einen Teil der Bildschirmausgabe in eine Protokolldatei umleiten?
Bonusfrage: Wie entferne ich selektiv Zeilen aus templog.txt oder der Ausgabeumleitung, die nicht am Anfang stehen?
Antwort1
Wie kann ich die ersten 10 Zeilen aus templog.txt entfernen oder alternativ nur einen Teil der Bildschirmausgabe in eine Protokolldatei umleiten?
Nachfolgend finden Sie ein paar verschiedene Möglichkeiten, um das gewünschte Ergebnis zu erzielen.Auslassen von Zeilen mit bestimmten Zeichenfolgenin ihnen mitFindstroder einfachEntfernen bestimmter ZeilennummernmitSEDaus templog.txt, bevor der Inhalt an die vollständige Protokolldatei von log.txt angehängt wird.
Verwenden von FINDSTR
Dadurch werden die Zeichenfolgen in Anführungszeichen, die in templog.txt enthalten sind, nicht an log.txt angehängt.
FINDSTR /V /I "string1 string2 string3 string4" templog.log>>log.txt
Dadurch werden die regulären Ausdrücke in den Anführungszeichen nach jedem /C:
Schalter, die in templog.txt stehen, weggelassen und nicht an log.txt angehängt. Sie müssen also nur sicherstellen, dass Sie alle regulären Ausdrücke haben, die zum Weglassen übereinstimmen müssen.
FINDSTR /V /R /C:"<regex1>" /C:"<regex2>" /C:"<regex3>" templog.log>>log.txt
Verwenden von SED
Dadurch werden die Zeilen 1 bis 10 aus templog.txt entfernt und der Rest anschließend an log.txt angehängt.
sed -i -e "1,10d" templog.txt
Weitere Ressourcen
Antwort2
PowerShell – Entfernen bestimmter Zeilen aus einer Datei
Sie können die folgenden PowerShell-Befehle verwenden, um die ersten fünf Zeilen mit dem -Skip
Parameter zu überspringen.Objekt auswählenaus dem Inhalt der Datei templog.txt und aktualisieren Sie sie dann mit allem außer den übersprungenen Dateizeilen.
(Get-Content "C:\path\templog.txt" | Select-Object -Skip 5) | Set-Content "C:\path\templog.txt"
Sie können die folgenden PowerShell-Befehle mit dem -Skip
Parameter verwenden mitObjekt auswählenum die ersten fünf Zeilen von templog.txt zu überspringen und dann alle außer diesen Zeilen an die Datei log.txt anzuhängen.
(Get-Content "C:\path\templog.txt" | Select-Object -Skip 5) | Add-Content "C:\path\log.txt"