【发布时间】:2020-05-08 04:18:50
【问题描述】:
我有 2 个 csv 文件。 File1 是现有的私有 IP 地址及其主机名列表。 File2 是一份每日报告,有 8 列,其中 2 列包含私有 IP。 我想通过将 file2 的字段 4 和字段 7 与 file1 的字段 2 进行比较来比较 file2 和 file1。然后,在匹配时,我想根据字段 4 和字段 7 与 file1 的字段 2 的匹配,附加 file2 的字段 3 和字段 6。
文件1.csv
PC1,192.168.3.1
PC2,192.168.3.2
PC3,192.168.3.3
File2.csv(大约有 50 行)
Port,Type,S_Host,S_IP,Port,D_Host,D_IP,Port
2,tcp,N/A,192.168.3.1,2,N/A,192.168.3.2,8
3,tcp,N/A,192.168.3.2,2,N/A,192.168.3.3,3
我需要编写一个 bash 脚本来自动化 file2。
期望的输出:
Port,Type,S_Host,S_IP,Port,D_Host,D_IP,Port
2,tcp,PC1,192.168.3.1,2,PC2,192.168.3.2,8
3,tcp,PC2,192.168.3.2,2,PC3,192.168.3.3,3
【问题讨论】:
-
欢迎来到 SO,在 SO 上,我们鼓励用户添加他们为解决自己的问题所做的努力,所以请在您的问题中添加相同的内容,然后让我们知道。
-
提示:您可以使用
join命令。 -
请将该示例输入的所需输出(无描述)添加到您的问题(无评论)。
-
添加了我想要的输出:)
-
将 file1 读入
awk中的数组(由 IP 索引),然后处理 file2 并使用字段 4 和 7 中的 IP 查找主机名,并将字段 3 和 6 设置为等于生成的主机名并打印记录。