2014-11-06 60 views
0

我有這個文件test1的如下如何搜索在awk中使用變量

NAME1 04-03-2014 
NAME2 04-04-2014 

現在我能得到O/P,我需要的時候我在命令行中執行,但不是我用它作爲變量。我的awk的版本是從CMD線3.1.5

作品:AWK '$ 2 =/2014年4月3日/' test1的 不會在Bash/KSH腳本工作:

export m=04 d=03 y=2014 
awk -v m="$m" -v d="$d" -v y="$y" '$2 = /m-d-y/' test1 OR 
awk -v m="$m" -v d="$d" -v y="$y" '$2 = m-d-y' test1 ### This replaces the 2nd field as -2010 

我在printf語句之前,在awk中使用了變量來計算數字,但上面的示例似乎對我來說似乎不起作用。然而,我嘗試了一種解決方法,即在一個文件中回顯awk cmd,然後將該文件作爲腳本執行,從而爲我提供所需的o/p,但我認爲這不是正確的做事方式,並且如果有人願意給我一個更聰明的方法。

+0

你在做什麼?發佈一個腳本不會做任何你想要的,然後問我們如何解決它而不告訴我們你想做什麼使我們很難幫助你。你是否試圖給$ 2分配一些值或試圖測試$ 2是否等於某個值或別的東西?你發佈了一些示例輸入。這是一個好的開始,但現在發佈你想要的輸出。 – 2014-11-06 19:09:31

回答

1

這是一個猜測,但我打賭你試圖打印每一行,其中$2等於從你的變量構造的特定字符串。如果是這樣的話:

awk -v m="$m" -v d="$d" -v y="$y" '$2 == m"-"d"-"y' file