这是我的文本文件的示例:
<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>
问题是我需要纯文本以及以下内容标签仅有的:
color w:val="FF0000"
highlight w:val="green"
如何才能做到这一点?
答案1
使用上述命令行,如果您永远不会将这些表达式作为文本,它将发挥作用:
<w:
\>
命令行是:
cat Myfile.txt | grep -E "color w:val=|highlight w:val=" | sed s/"<w:"/""/g | sed s/"\/>"/""/g
解释:
grep -E, --extended-regexp PATTERN
将 PATTERN 解释为扩展正则表达式|
PATTERN 中的逻辑或grep
|
shell 环境中的管道符号sed s/"<w:"/""/g
全局(所有地方)"<w:"
用空字符串替换""
注意:可以sed
用许多其他方式和更紧凑的方式编写。我认为是这样教学当需要用另一个表达式替代一个表达式时,可以在更广泛的范围内使用。
这是输出:
highlight w:val="green"
color w:val="FF0000"