gpt4 book ai didi

linux - 用于查找文件中缺少哪个服务器的 Bash 脚本?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:29:21 25 4
gpt4 key购买 nike

我对 BASH 脚本编写还比较陌生。我希望有人能提供帮助。我有两个文件。文件 1 是一个包含特定服务器属性的 .csv 文件。

cmdb_ci_linux_server.csv

"CLS000","csl000","Linux SuSe","9","HP"
"CLS001","cls001","Linux SuSe","9","VMware, Inc."
"CLS002","cls002","Linux Red Hat","5.11","VMware, Inc."
...
"VSRQ1CS1","vrsq1cs1","Linux SuSe","11","VMware, Inc."

这些是已经 checkout 的服务器。我需要将它与所有服务器的列表进行比较,找出哪些还没有被检查过。所有服务器的列表采用以下格式:主机.txt

cls000
cls001
cls002
cls003
cls004
cls005
...
cls499

我尝试了几个不同的脚本,但没有一个对我有用。我尝试在单独的脚本中完成所有不同的步骤,希望我能让事情相对简单。这对我来说很有意义,但它不会返回任何东西。非常感谢任何帮助。

#!/bin/bash

while IFS="," read name host_name os os_version manufacturer
do
cat cmdb_ci_linux_server.csv

cat hosts.txt

grep -vf cmdb_ci_linux_server.csv hosts.txt

done

我对 Linux 了如指掌,但不是很了解。我对 Windows 更熟悉。我有点意外地被扔进了这份工作:/

提前致谢!

最佳答案

试试这个:

(cat cmdb_ci_linux_server.csv | 
awk 'BEGIN{FS=","}{print substr($2,2,length($2)-2)}'|
sort | uniq;
cat hosts.txt | sort | uniq) | sort | uniq -c

示例结果:

1 cls000

2 cls001

2 cls002

1 cls003

1 cls004

1 cls005

1 csl000

左边的数字:表示找到的次数

关于linux - 用于查找文件中缺少哪个服务器的 Bash 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29924839/

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