2012-03-16 41 views
1

请帮助解决这个问题。AWK - 在'BEGIN'中分配给'date'的传输变量?

我想在'BEGIN'中将变量(a =“echo 2012-03-16”)赋值给命令'date'。获取和打印'$ 0'的'日期'。

下面是一个例子:

awk 'BEGIN {a="echo 2012-03-16"; "date +%s -d "$a" " | getline; print $0}' 

谢谢您的帮助。

回答

2
  • 您可以参考变量直接awk,不需要a$
  • date +%s -d 2012-03-16发送到shell,不需要echo

$ awk 'BEGIN {a="2012-03-16"; "date +%s -d "a | getline; print $0}' 
+0

感谢您的答复,但不是重点。我想插入变量'a =“2010-03-29”'中的日期。日期+%s -d 2010-03-29 - > 1269813600通过这种方式,打印当前日期。 awk'BEGIN {a =“2010-03-29”; “date +%s -d a”|函数getline;打印$ 0}' - > 1331859600 – Tedee12345 2012-03-16 14:36:29

+0

Kev的回答对我来说很合适。如果您编辑问题以包含所需的输出,您将帮助自己获得更快更好的答案。你是说你有一个var'$ {a}'在你的shell环境中吗?祝你好运。 – shellter 2012-03-16 15:08:35

+0

对不起。这是一件好事,他们只是不会在Ubuntu 10.10上工作。### $ awk'BEGIN {a =“2010-03-29”,“date +%s-d”a |函数getline;打印$ 0}' - >/bin/sh:2010-03-29:找不到### Ubuntu 10.04运行良好。 pc:〜$ awk'BEGIN {a =“2010-03-29”,“date +%s-d”a |函数getline;打印$ 0}' - > 1269813600 ###感谢您的帮助。 – Tedee12345 2012-03-16 16:52:41