使用以下简单的grep& AWK命令匹配CSV文件中的主机名和打印ID。
我的命令:
#!/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
请帮我解决这个问题。
答案 0 :(得分:1)
评论后编辑:
这是一个纯粹的awk
解决方案:
awk -v host="$(hostname)" 'tolower($1)~tolower(host){print $2}' /tmp/MasterInventory.csv > /opt/input_appProfile.id
以下是使用grep
的解决方案,如果您愿意的话:
grep -i `hostname` /tmp/MasterInventory.csv | awk '{print $1}' > /opt/input_appProfile.id
纯awk
优于grep
解决方案的优点是您只匹配第一列而不是整行。另外,如果您使用==
代替~
,则可以确保您只获得确切的主机名匹配。