Удаление всех строк в текстовом файле на основе частичной строки соответствует Windows PowerShell

Таким образом, у меня есть несколько файлов крупного текста, я должен отсортировать и удалить все случаи строк, которые содержат данное ключевое слово. Так в основном, если у меня есть эти строки:

Это не тест
Это - тест
Возможно, тест
Определенно не тест

И я запускаю скрипт с 'не', я должен полностью удалить строки 1 и 4.

Я пробовал:

PS C:\Users\Admin> (Get-Content "D:\Logs\co2.txt") | 
Foreach-Object {$_ -replace "3*Program*", ""} | 
Set-Content "D:\Logs\co2.txt"

но это только заменяет 'Программу' а не всю строку.

22
задан 08.04.2017, 06:56

2 ответа

Это будет работать:

(Get-Content "D:\Logs\co2.txt") -notmatch "not" | Out-File "D:\Logs\co2.txt"
7
ответ дан 07.12.2019, 09:57

Вот то, что я сделал бы:

Get-Content .\in.txt | Where-Object {$_ -notmatch 'not'} | Set-Content out.txt

Строка глюка делает то же, но это запускается с загрузки всего файла в массив, который может быть проблематичным с большими мудрыми памятью файлами.

25
ответ дан 07.12.2019, 09:57

Теги

Похожие вопросы