2012-03-16 95 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