gpt4 book ai didi

linux - grep 和 AWK 命令读取主机名并打印列

转载 作者:太空宇宙 更新时间:2023-11-04 05:42:57 25 4
gpt4 key购买 nike

我使用下面简单的 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 1719,但实际上它应该根据主机名只打印 19

请帮我解决这个问题。

最佳答案

评论后编辑:

这是一个纯粹的 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 解决方案的优点是仅匹配第一列而不是整行。另外,如果您使用 == 而不是 ~,您可以确保您只获得精确的主机名匹配。

关于linux - grep 和 AWK 命令读取主机名并打印列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42068160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com