首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较集与“comm”

比较集与“comm”
EN

Unix & Linux用户
提问于 2022-06-15 16:49:39
回答 1查看 126关注 0票数 0

与设备的ARP表相比,试图根据一个范围内的所有可用IP获取可用IP地址的列表。

我对comm所做的工作是基于以下讨论:巴什中两个数组的相交

创建IP的范围以与-e.g 192.168.20.0/23进行比较

代码语言:javascript
复制
RANGE1=(192.168.20.{2..255})
RANGE2=(192.168.21.{0..254})
RANGE=("${RANGE1[@]}" "${RANGE2[@]}")
printf '%s\n' "${RANGE[@]}" | LC_ALL=C sort > "${IPSETS_DIR}/_set.txt"

$1是网络设备的IP。OID基本上是设备的ARP表。GREP_SEARCH示例:“192.168.20 x 192.168.30 x 192.168.55”

代码语言:javascript
复制
$(which snmpbulkwalk) -v2c -c  "${1}" .1.3.6.1.2.1.4.35.1.4 > "${RESULTS_FILE}"
STRIPPED_RESULTS=( $(cut -d\" -f2 "${RESULTS_FILE}" | egrep -w "(^|\s)${GREP_SEARCH}") )
printf "%s\n" "${STRIPPED_RESULTS[@]}" | LC_ALL=C sort > "${STRIPPED_FILE}"

遍历返回的结果如下:IP-MIB::ipNetToPhysicalPhysAddress.118161416.ipv4."X.X.X.X" = STRING: XX:XX:XX:XX:XX:XX

然后,我使用下面的方法进行比较。一美元是城市化名。

代码语言:javascript
复制
$(which comm) -13 "${STRIPPED_FILE}" "${IPSETS_DIR}/${1}_set.txt" > "${DIR}/${1}_stored_results.txt"

这主要是可行的,但我仍然得到了正在使用的in。不知道我错过了什么。

EN

回答 1

Unix & Linux用户

发布于 2022-06-15 19:54:21

Stéphane的链接给了我答案。

设置补码$comm-23<(排序set1) <(排序set2) #在set1中输出不在set2中的元素

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

https://unix.stackexchange.com/questions/706322

复制
相关文章

相似问题

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