【问题标题】:cidr converter using sed or awk使用 sed 或 awk 的 cidr 转换器
【发布时间】:2023-04-02 14:35:01
【问题描述】:

我有一个带有 cidr 格式 IP 地址的文本文件。每行一个 cidr。如何将 cidrs 转换为 IP 范围,即开始 IP - 结束 IP。每行一个 IP 范围。请注意两边的空格 - .

【问题讨论】:

  • 您应该给出一些示例行,以便 awk/sed 专家可以在不知道 cidr 的情况下找出解决方案。

标签: awk sed ip cidr


【解决方案1】:

你最好使用ipcalc:

ipcalc 192.168.0.1/24 -nb | awk '/HostMin/{min=$NF} /HostMax/{max=$NF} END {print min" - "max}'
192.168.0.1 - 192.168.0.254

循环文件的简单脚本:

#!/bin/bash

cat file.txt |\
while IFS= read ip; do
    ipcalc "$ip" -nb |\
    awk '   /HostMin/{min=$NF} 
            /HostMax/{max=$NF} 
            END {print min" - "max}'
done

【讨论】:

  • 感谢您的回答,但显然 ipcalc 不采用充满 cidr 地址的文本文件。有什么解决方法,也许做一个 while 循环
  • 我添加了一个简单的脚本来循环你的文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-29
  • 1970-01-01
  • 1970-01-01
  • 2015-06-21
  • 1970-01-01
  • 2017-11-11
  • 2010-10-27
相关资源
最近更新 更多