Powershell ||Подбор паттерна в большом файле и печать соседних строк - PullRequest
0 голосов
/ 31 мая 2018

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

blah
---BLOCK SEPERATOR ---
blah
blah
there can be variable
number
of blah
MATCHING PATTERN
again
varying
number of
blah
---BLOCK SEPERATOR ---
blah
variable
blah
again
---BLOCK SEPERATOR ---

Теперь я хочу извлечь блок, который содержит только соответствующий шаблон.Поскольку файл очень большой, я использовал readcount 500, как предлагалось в других вопросах.Также я хотел напечатать соседнюю строку, поэтому я использовал select-string -pattern <Pattern> -context 100,100.Но они оба не работают вместе, даже если они там работают, я не уверен, сколько разделителей блоков будет записано в 100 строках, поэтому мне придется взять найденные строки и использовать регулярные выражения для них, чтобы получить точный блок.Прямо сейчас я не могу использовать регулярное выражение, поскольку файл очень большой, и для чтения всего файла требуется очень много времени.

В идеале я хочу сопоставить шаблон, а затем извлечь строку до разделителя блоковс обеих сторон.Пожалуйста, обратите внимание, что файл очень большой, readcount работает, но он не работает в сочетании со строкой выбора.

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

Заранее спасибо!

1 Ответ

0 голосов
/ 31 мая 2018
$rawData = @"
blah
---BLOCK SEPERATOR ---
blah
blah
there can be variable
number
of blah
MATCHING PATTERN
again
varying
number of
blah
---BLOCK SEPERATOR ---
blah
variable
blah
again
---BLOCK SEPERATOR ---
"@

$rawData -split "---BLOCK SEPERATOR ---" | Where-Object {$_ -like "*MATCHING PATTERN*"}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...