2014-01-14 3 views
1

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

Я хотел бы удалить все строки, в которых первое поле пустым. Разделитель файлов - тильда, поэтому по существу я хочу удалить все строки, где первый символ -

Может кто-то помочь с кодом PowerShell - я не могу понять, что это правильно.

+2

Насколько велик ваш файл? Что вы пробовали и каким образом это не удалось? Вы пробовали, например, Get-Content file.txt | Где {$ _ -notmatch "^ ~"} | Set-Content filterfile.txt? –

+0

Спасибо, что отлично работает - мне не хватало ^ – user2725402

ответ

9

Просто добавив часть ответа из моего комментария в качестве ответа, чтобы люди могли видеть, что на вопрос был дан ответ.

Решение, которое работало от человека, задающего вопрос был:

Get-Content file.txt | Where { $_ -notmatch "^~" } | Set-Content filteredfile.txt 

Как примечание, быть в курсе возможных проблем кодирования. Если вам нужно указать кодировку, оба метода Get-Content и Set-Content имеют параметр -Encoding, который вы можете использовать для указания кодировки.

0

Я думаю, что вы можете сделать это следующим образом:

sls -n '^~' file.txt | set-content filtered.txt 
Смежные вопросы