0

我有以下命令,它以毫秒为单位导出日期。我正在尝试将其存储为变量,以便稍后在我的脚本中使用它:

epochlastUpdated= awk "/<pl:updated>/" feed.rss | head -n 1 | awk -F\< ' { print $2 } ' | awk -F\> ' { print $2 } '| date -j -f "%a, %d %b %Y %H:%M:%S %Z" "Fri, 13 Sep 2013 17:16:45 GMT" +%s000

我似乎无法让脚本将该行的输出存储在 epochlastUpdated 变量中?

4

3 回答 3

2

要存储命令执行结果,您需要

var=$(command)

在这种情况下,

epochlastUpdated=$(awk "/<pl:updated>/" feed.rss | head -n 1 | awk -F\< ' { print $2 } ' | awk -F\> ' { print $2 } '| date -j -f "%a, %d %b %Y %H:%M:%S %Z" "Fri, 13 Sep 2013 17:16:45 GMT" +%s000)
于 2013-09-16T13:54:43.503 回答
2

你得到了你的具体答案,但是这个:

awk "/<pl:updated>/" feed.rss | head -n 1 | awk -F\< ' { print $2 } ' | awk -F\> ' { print $2 } '

可以在 1 个 awk 命令中完成:

awk -F\< '/<pl:updated>/{split($2,a,/>/); print a[2]; exit}' feed.rss

它可能比这更简单,这取决于您的输入实际上是什么样的。

于 2013-09-17T02:47:55.670 回答
1

另一个简短的 awk 版本:

awk -F"<|>" '/<pl:updated>/ {print $3;exit}' feed.rss
于 2013-09-17T12:06:55.947 回答