我正在为备份解决方案编写日志文件。
备份解决方案是一个简单的 7-zip 更新命令。
我想记录它备份了哪些文件。如果我使用 >> log.txt,我会得到结果,但也会得到 7-zip 输出的许多其他我不想要的信息。
我正在寻找一种方法来部分记录屏幕上的内容。我不介意使用 7z .... >templog.txt,然后在将其附加到 log.txt 之前对 templog.txt 进行一些操作。但我也不知道如何从命令行有选择地从 templog.txt 中删除行。
所以我想我的问题归结为:我怎样才能从 templog.txt 中删除前 10 行,或者仅将屏幕上的部分输出重定向到日志文件?
附加问题:如何有选择地从 templog.txt 或输出重定向中删除不在开头的行?
答案1
我怎样才能从 templog.txt 中删除前 10 行,或者仅将屏幕上的部分输出重定向到日志文件?
以下是几种不同的方法来实现你的要求省略包含特定字符串的行在他们中查找字符串或者只是删除特定的行号和独立能源管理委员会从 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-从文件中删除特定行
您可以使用以下 PowerShell 命令跳过前五行,使用-Skip
参数选择对象从 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"