Как выполнить поиск, чтобы найти строку, содержащую только символ «тильда», за которой следует следующая строка, которая НЕ НАЧИНАЕТСЯ с символа ~ тильда.
Это для большого текстового файла с несколькими записями. и, как правило, каждая мульти-запись отделяется (разделяется) записью, содержащей только символ тильды. Я хотел бы найти все отсутствующие разделители в файле. Все записи в файле заканчиваются CRLF.
Пример текстового файла для поиска. В этом примере файла первая мульти-запись находится в строках 1 и 2, за которой следует разделитель тильды, затем строки 4–6 - это следующая мульти-запись, за которой следует еще один разделитель ~ в строке 7. Сценарий должен найти ошибку. в строке 8, поскольку она должна начинаться с ~, за которым следует дополнительный текст (как в строках 1 и 4).
MyTextFile.txt :
~A123~,~800-123-1234~,~800-345-6789~
SAMPLE TEXT HERE
~
~A100~,~800-123-1234~,~800-345-6789~
SAMPLE TEXT HERE
MORE SAMPLE TEXT HERE
~
SAMPLE TEXT HERE
MORE SAMPLE TEXT HERE
Следующее Код PowerShell находит «Значение», используя только тильду, за которой следует 1-й символ в следующей строке «S», но он не отображает номер строки, который мне нужен, поэтому я могу удалить оставшийся текст после строки ~.
Текущий код:
$MYFILE = Get-Content MyTextFile.txt -Raw
[regex]$rx="[~]`r`n[^~]"
$rx.Match($MYFILE)
Вывод:
Groups : {0}
Success : True
Name : 0
Captures : {0}
Index : 136
Length : 4
Value : ~
S
У меня есть рабочий скрипт в Linux BASH, но я новичок в Powershell.