Я пишу лог-файл для решения резервного копирования.
Решение для резервного копирования — простая команда обновления 7-zip.
Я хотел бы регистрировать, какие файлы он резервирует. Если я использую >> log.txt, я получу результат, но также много другой информации, которую выводит 7-zip, и которая мне не нужна.
Я ищу способ частичного логирования того, что на экране. Я не против использовать 7z .... >templog.txt, а затем сделать что-то с templog.txt перед добавлением его в log.txt. Но я также не знаю, как выборочно удалить строки из templog.txt из командной строки.
Итак, полагаю, мой вопрос сводится к следующему: как удалить первые 10 строк из templog.txt или, в качестве альтернативы, перенаправить только часть вывода на экран в файл журнала?
Бонусный вопрос: как выборочно удалить строки из templog.txt или перенаправления вывода, которые находятся не в начале?
решение1
Как удалить первые 10 строк из templog.txt или, в качестве альтернативы, перенаправить только часть вывода на экран в файл журнала?
Ниже приведено несколько различных способов выполнить то, о чем вы просите.пропуск строк с определенными строкамив них сFindstrили простоудалить определенные номера строксСЭДиз templog.txt, прежде чем он добавит то, что в нем находится, в полный файл журнала log.txt.
Использование FINDSTR
Это исключит строки в двойных кавычках, которые находятся в templog.txt, из добавления в log.txt.
FINDSTR /V /I "string1 string2 string3 string4" templog.log>>log.txt
Это исключит добавление регулярных выражений в двойных кавычках после каждого /C:
переключателя, которые находятся в templog.txt, в log.txt, поэтому вам просто нужно будет убедиться, что у вас есть каждое регулярное выражение, которое вам нужно сопоставить для пропуска.
FINDSTR /V /R /C:"<regex1>" /C:"<regex2>" /C:"<regex3>" templog.log>>log.txt
Использование СЭД
Это удалит строки 1–10 из templog.txt, а затем после этой операции добавит остальные в log.txt.
sed -i -e "1,10d" templog.txt
Дополнительные ресурсы
решение2
PowerShell — удаление определенных строк из файла
Вы можете использовать приведенные ниже команды PowerShell, чтобы пропустить первые пять строк, используя -Skip
параметр withВыбрать объектиз содержимого файла templog.txt, а затем обновите его, указав все, за исключением пропущенных строк файла.
(Get-Content "C:\path\templog.txt" | Select-Object -Skip 5) | Set-Content "C:\path\templog.txt"
Вы можете использовать приведенные ниже команды PowerShell, используя -Skip
параметр withВыбрать объектчтобы пропустить первые пять строк файла templog.txt, а затем добавить все строки, кроме этих, в файл log.txt.
(Get-Content "C:\path\templog.txt" | Select-Object -Skip 5) | Add-Content "C:\path\log.txt"