1

我有这个 .xml 文件:

<docs>
<doc>
Some text
</doc>
<doc>
here some
</doc>
<doc>
text here
</doc>
</docs>

我正在尝试使用 csplit 来仅获取文本部分。这就是我想出的。

$ csplit docs.xml '%^<docs>%1' '/^<\/doc/1' '{*}'
4

1 回答 1

1

如果文件结构像您包含的那样,您可以通过执行grep -v "^<" x或更方便的方法来提取内容,或者cat x|sed -e 's/<[^>]*>//g'|grep -v '^$'根据下面的评论以 csplit 方式执行它,您可以这样做

cat doc.xml | egrep -v '<?xml version="1.0" \?>|<docs>|</docs>' | csplit -q -z - '/<doc/' '{*}' --prefix=out-
于 2014-02-12T13:38:52.133 回答