現在用下面簡單的grep & AWK命令從CSV文件匹配的主機名和打印ID。grep和awk命令來讀取主機名和打印列
我的命令:
#!/bin/bash
host=`hostname`
/bin/cat /tmp/MasterInventory.csv | grep -i $host | awk -F, '{print $1}' > /opt/input_appProfile.id
我的CSV庫存:
Hostname App_ID
SercverTest345 12
Mytestserver01 17
Mytestserver02 19
如果CMD搜索Mytestserver02
正在打印APP_ID 17
& 19
,但實際上它應該只19
打印爲每個主機名
請幫我解決這個問題。
爲什麼你寫的'awk的-F,'如果您的CSV文件沒有逗號? – Aserre
像'AWK -v主機=「Mytestserver01」「$ 1 == {主機打印$ 2}」的/ tmp/MasterInventory.csv'應該爲你的工作的情況下順便說一句,但我覺得有你的問題很多重複。 – Aserre
您的解決方案只會匹配_exact_主機名稱。他對grep的使用似乎表明他也想要部分匹配。因此:'AWK -v主機= 「Mytestserver01」 '$ 1〜主機{打印$ 2}' 的/ tmp/MasterInventory.csv' – cfromme