我正在為備份解決方案編寫日誌檔案。
備份解決方案是一個簡單的 7-zip 更新指令。
我想記錄它備份的檔案。如果我使用 >> log.txt 我會得到結果,但也會得到 7-zip 輸出的許多我不想要的其他資訊。
我正在尋找一種方法來部分記錄螢幕上的內容。我不介意使用 7z .... >templog.txt,然後對 templog.txt 執行某些操作,然後再將其附加到 log.txt。但我也不知道如何從命令列選擇性地刪除 templog.txt 中的行。
所以我想我的問題歸結為:如何從 templog.txt 中刪除前 10 行,或者僅將螢幕上的部分輸出重定向到日誌檔案?
額外問題:如何選擇性地從 templog.txt 或輸出重新導向中刪除不在開頭的行?
答案1
如何從 templog.txt 中刪除前 10 行,或僅將螢幕上的部分輸出重新導向到日誌檔案?
以下是實現您要求的幾種不同方法省略帶有某些字串的行在他們與查找字串或者只是刪除特定行號和SED從 templog.txt 讀取內容,然後將其中的內容附加到 log.txt 的完整日誌檔案中。
使用 FINDSTR
這將省略 templog.txt 中雙引號中的字串附加到 log.txt
FINDSTR /V /I "string1 string2 string3 string4" templog.log>>log.txt
這將省略 templog.txt 中的每個開關後面的雙引號中的正規表示式,/C:
以免附加到 log.txt,因此您只需確保擁有需要匹配的每個正規表示式以進行省略。
FINDSTR /V /R /C:"<regex1>" /C:"<regex2>" /C:"<regex3>" templog.log>>log.txt
使用 SED
這將從 templog.txt 中刪除第 1 - 10 行,然後在該操作之後將其餘行附加到 log.txt
sed -i -e "1,10d" templog.txt
更多資源
答案2
PowerShell - 從檔案中刪除特定行
-Skip
您可以使用以下 PowerShell 命令使用參數跳過前五行選擇對象從 templog.txt 檔案的內容中取得內容,然後使用跳過省略的檔案行之外的所有內容更新它。
(Get-Content "C:\path\templog.txt" | Select-Object -Skip 5) | Set-Content "C:\path\templog.txt"
您可以使用以下 PowerShell 命令並使用-Skip
參數選擇對象跳過 templog.txt 的前五行,然後將這些行以外的所有行附加到 log.txt 檔案中。
(Get-Content "C:\path\templog.txt" | Select-Object -Skip 5) | Add-Content "C:\path\log.txt"