【发布时间】:2020-08-25 09:24:03
【问题描述】:
我正在使用以下 curl 命令:
curl -u $username:$password --silent "https://mail.google.com/mail/feed/atom" | \tr -d '\n'
要获得这样的示例输出:
<?xml version="1.0" encoding="UTF-8"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#">
<title>Gmail - Inbox for user@email.com</title>
<tagline>New messages in your Gmail Inbox</tagline>
<fullcount>13</fullcount>
<entry>
<title>Backup Status</title>
<summary>Backup Successful </summary>
<link rel="alternate" href="https://mail.google.com/mail?account_id=user@email.com&message_id=1715ed8b619b4e4b&view=conv&extsrc=atom" type="text/html"/>
<modified>2020-04-07T19:53:47Z</modified>
<issued>2020-04-07T19:53:47Z</issued>
<id>tag:gmail.google.com,2004:1663333312794531403</id>
<author>
<name>Carbonite</name>
<email>noreply@carbonite.com</email>
</author>
</entry>
<entry>
<title>Backup Status Report</title>
<summary>Dear IDrive User, Ref : UserName....</summary>
<link rel="alternate" href="https://mail.google.com/mail?account_id=user@email.com&message_id=1715ed8b619b4e4b&view=conv&extsrc=atom" type="text/html"/>
<modified>2020-04-07T19:53:47Z</modified>
<issued>2020-04-07T19:53:47Z</issued>
<id>tag:gmail.google.com,2004:1663333312794531403</id>
<author>
<name>no-reply</name>
<email>no-reply@idrive.com</email>
</author>
</entry>
<entry>
<title>Notification</title>
<summary>Notification Status</summary>
<link rel="alternate" href="https://mail.google.com/mail?account_id=user@email.com&message_id=1715ed8b619b4e4b&view=conv&extsrc=atom" type="text/html"/>
<modified>2020-04-07T19:53:47Z</modified>
<issued>2020-04-07T19:53:47Z</issued>
<id>tag:gmail.google.com,2004:1663333312794531403</id>
<author>
<name>Software Notification</name>
<email>noreply@.email.com</email>
</author>
</entry>
<entry>
............etc
</entry>
我想提取所有<entry\title>,<entry\summary>,<entry\author\name> 的值并将它们设置为 bash 脚本中的变量。
如何将这些值设置为变量?
我想从 xml 中提取值并将它们发送到变量,例如 <title> 到 $title、<summary> 到 $summary 和 <name> 到 $name。
所以一个例子是:
$title = 电子邮件标题
$summary = 电子邮件正文
$name = 来自名字
【问题讨论】:
-
edit 您的问题,以根据您发布的示例输入显示预期输出。
-
我添加了更多关于我正在寻找的信息。这就是你要找的吗?
-
这看起来像是我正在尝试做的事情:unix.stackexchange.com/questions/500401/…
-
@EdMorton 我重新输入了我的问题,我希望很清楚我在问什么,
-
$subject: <title>只是您预期输出的某种模板,它不是您预期的输出。$subject: Gmail - Inbox for user@email.com可能是您预期输出的一行,因为它以新格式显示包含来自您输入的数据值的输出。所以,最后一次,请edit您的问题显示您发布的示例输入的预期输出,以便我们可以帮助您,如果不清楚,请查看How to Ask。
标签: xml awk sed grep xmlstarlet