2016-11-04 22 views
0

我想在純[g] awk代碼中接受用戶輸入。現在需要的是我希望用戶輸入今天或當前 - 天數以生成報告。我無法在awk中找到任何例程來讀取用戶的輸入。有時候,我已經在awk上讀過一篇關於使用sprintf或printf完成的文檔,但我不知道如何。用戶輸入awk或變量在搜索模式中的使用

OR

在AWK

,我使用BEGIN塊設置一個變量,然後根據該搜索,但沒有找到它非常有助於搜索變量基於搜索。如下所示:

awk -F "|" ' BEGIN { PWR="Nov 3"; } 
/Deployment started at PWR/ { print $1 + $NF }' /var/log/deployments 

這個攻擊性地否認了我對「部署在11月3日開始」模式的任何搜索。

回答

0

在正則表達式斜槓內,您無法訪問變量。你可以做的是從搜索短語中製作一個字符串,然後作爲正則表達式的字符串。

awk -F "|" ' BEGIN { PWR="Nov 3"; } 
$0 ~ "Deployment started at "PWR { print $1 + $NF }' /var/log/deployments 
+0

這非常[不必]脆弱。我會使用字符串比較來代替:'index($ 0,「部署在」PWR「開始)。希望壓水堆設置的空白區可以消除「11月3日」與「11月30日」的錯誤匹配。 –