Вот пример моего текстового файла:
<w:r><w:t>
<w:r w:rsidR="00D171FD">
<w:t></w:t>
</w:r><w:r>
<w:t xml:space="preserve">
This is a sample text </w:t>
</w:r>
<w:highlight w:val="green"/>
<w:r w:rsidR="00D171FD">
<w:color w:val="FF0000"/>
<w:t>
Sample text</w:t>
</w:r>
Проблема в том, что мне нужны только чистый текст и только следующие теги : [ 113]
color w:val="FF0000"
highlight w:val="green"
Как это можно сделать?
С вышеупомянутой командной строкой это будет функционировать, если у Вас никогда не будет их выражением как текст:
<w:
\>
Командная строка:
cat Myfile.txt | grep -E "color w:val=|highlight w:val=" | sed s/"<w:"/""/g | sed s/"\/>"/""/g
Объяснение:
grep -E, --extended-regexp PATTERN
|
логичный ИЛИ в ШАБЛОНЕ grep
|
символ вертикальной черты в среде оболочки sed s/"<w:"/""/g
замены глобально (везде) "<w:"
с пустой строкой ""
Примечание: возможно записать sed
во многих другой путь и более компактным способом. Я думаю, так является дидактическим и может использоваться в большем количестве широкого спектра возможности, когда необходим для замены выражением с другим.
Это - вывод:
highlight w:val="green"
color w:val="FF0000"