2 回答
TA贡献1803条经验 获得超6个赞
这是一个完整的工作示例。
如果仅提取电子邮件地址,则可以执行以下操作:
1)假设XML文件spam.xml类似于
<spam>
<victims>
<victim>
<name>The Pope</name>
<email>pope@vatican.gob.va</email>
<is_satan>0</is_satan>
</victim>
<victim>
<name>George Bush</name>
<email>father@nwo.com</email>
<is_satan>1</is_satan>
</victim>
<victim>
<name>George Bush Jr</name>
<email>son@nwo.com</email>
<is_satan>0</is_satan>
</victim>
</victims>
</spam>
2)您可以使用以下简短的bash代码获取电子邮件并进行处理:
#!/bin/bash
emails=($(grep -oP '(?<=email>)[^<]+' "/my_path/spam.xml"))
for i in ${!emails[*]}
do
echo "$i" "${emails[$i]}"
# instead of echo use the values to send emails, etc
done
该示例的结果是:
0 pope@vatican.gob.va
1 father@nwo.com
2 son@nwo.com
重要说明:
请勿将其用于严重问题。可以玩耍,获得快速结果,学习grep等,这是可以的,但是您绝对应该寻找,学习和使用XML解析器进行生产。
- 2 回答
- 0 关注
- 302 浏览
添加回答
举报