2015-03-30 119 views
0

我有一個從日誌文件填充的變量。它正在捕獲在awk打印輸出中使用的服務器的主機名。即時通訊一個CSV文件,打印MAC地址,端口號,然後主機名。用AWK輸出打印一個變量用於csv文件

這裏是可變

hostVar=$(awk '/#/' macAddress.log) 

這工作得很好 我需要的是打印的變量在我的下一個AWK語句,以便它打印最後一個變種。下面的工作正常和打印MAC,主機

grep -Ff masterList macAddress.log | awk '{print $2 "," $4}' >> output.csv 

我正在使用主列表過濾掉我需要捕獲的MAC地址。最終的結果需要這個樣子MAC,PORT,HOST

grep -Ff masterList.csv macAddress.log | awk '{print $2 "," $4 "," $hostVar}' >> output.csv 

顯然是行不通的,但我需要在CSV文件中的主機名旁邊的端口號(MAC然後端口NUM然後主機名)

0011.2233.4455,Gi1/0,Switch1 

(交換機1是什麼$ hostVar填充了)

+0

你期待'$ test'等於什麼?現在,AWK正在尋找一個名爲'test'的awk變量並且沒有找到,因此它默認爲0.然後AWK查看$運算符並評估它等於整個輸入,因爲$ 0等於整個輸入。 – 2015-03-30 18:38:49

+0

對不起,錯字。任何引用$測試的應該是$ hostVar – 2015-03-30 18:41:18

回答

0

現在$ hostvar正試圖通過AWK來解決。嘗試

awk '{print $2 "," $4 "," '$hostVar'}' 

使用bash中的$ hostvar。單引號塊變量卡在字符串中,在bash中。

+0

不起作用。我需要的是打印2個匹配,然後是一個變量。該var捕獲的主機名稱,我需要它打印2其他調查結果。 – 2015-03-30 23:10:45