У мене є вертикальний файл, де кожне слово (маркер) знаходиться в окремому рядку в 4 стовпцях. Там також метаструктур <doc>
, <s>
... Документи виглядають наступним чином :
<doc name="sth" url="http">
<p>
<s>
Here here k1gInSc1 here
is be k1gMnPc2 be
a a k2eAgMnPc1d1 a
sentence sentence k1gMnPc1 sentence
<g/>
. . kIx.
</s>
</p>
</doc>
проблема полягає в тому, що іноді в першому стовпчику неправильне кодування з символами як Ă або Ä , наприклад
<doc name="sth" url="http">
<p>
<s>
Here here k1gInSc1 here
is be k1gMnPc2 be
Ă Ă k? Ă
sentence sentence k1gMnPc1 sentence
<g/>
. . kIx.
</s>
</p>
</doc>
Мені потрібно було б знайти цих символів і видалити всю структуру документа. Отже, якщо я знайду Ă на рядку, мені потрібно видалити весь вміст між <doc...>
усіма рядками </doc>
.
У моєму файлі є мільярд рядків і приблизно кілька тисяч рядків містять неправильно закодовані символи.
Я використовував греп для пошуку поганих символів:
xzcat file.vert.xz | grep -i "Ă\|Ĺ\|ľ\|ş\|Ä" > file_bad_characters.txt
Як я можу виявити ці символи та видалити не лише рядок, а й весь текст між <doc>
структурами.