首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bash比较文件中的随机行并输出消息

Bash比较文件中的随机行并输出消息
EN

Stack Overflow用户
提问于 2014-02-20 16:55:53
回答 1查看 47关注 0票数 0

我刚开始编写脚本,我需要一只手

我有两个文件。在第一个中,我有一系列的ip和数据库连接的数目,在另一个中,我分析了输出数据库名称、最大和最小连接、主机名和数据库服务器ip的数据源的配置。

我需要的是比较这两个文件并打印一条消息

File1

代码语言:javascript
复制
1.2.3.4 1
1.2.3.5 6
1.2.3.6 1
1.2.3.7 1
1.2.3.8 7

第一列是ip,第二列是同时连接到数据库的数量。

档案2

代码语言:javascript
复制
DB1 50 5      server1.domain.com 1.2.3.5
DB2 50 5    server2.domain.com 1.2.3.8
DB3 15 5      server3.domain.com 1.2.3.9
DB4 10 1    server4.domain.com 1.2.3.4
DB5 10 1       server5.domain.com 1.2.3.6

第一列是数据库名称,第二列是最大连接数,第三列是最小连接数,第四列是服务器主机名,第五列是ip。

因此,目标是将第一个文件的ip与第二个条目中的任何一个匹配,当它们匹配时,比较数据库的连接数是否在最大值和最小之间,如果它们正常或不确定,则打印一条消息。另外,如果在任何一个文件中都有不匹配的ip,请打印另一条消息

这有可能吗,有人能帮我一把吗,或者至少能帮我找到解决方案?!

提前谢谢!!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-20 16:58:14

你可以用这个:

代码语言:javascript
复制
$ awk 'NR==FNR {a[$1]=$2; next} $5=a[$5]' file1 file2
DB1 50 5 server1.domain.com 6
DB2 50 5 server2.domain.com 7
DB4 10 1 server4.domain.com 1
DB5 10 1 server5.domain.com 1

它使用a[ip]=num_connections数组将值存储在第一个文件中。然后,它循环遍历第二个文件,用对应于特定服务器的编号替换IP。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21914486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档