You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求符合POSIX标准的sh脚本反转IP地址的优雅实现方案

符合POSIX标准的Unix Shell IP地址反转方法

可以用awk实现完全符合POSIX标准的IP反转,同时解决你提到的两个问题:

RevIP() {
  echo "$1" | awk -F. '{for(i=NF;i>0;i--) printf "%s%s", $i, (i>1 ? "." : "\n")}'
}

示例用法:

$ RevIP 23.45.67.89
89.67.45.23

方案说明

  • 用awk的-F.指定分隔符为点,替代tr拆分IP段,减少额外进程开销
  • 从最后一个字段(NF代表字段总数)倒序遍历输出,每个字段后根据是否为倒序的最后一个元素,决定输出点或换行符,彻底避免末尾多余的点
  • 全程依赖POSIX标准工具(echo、awk均为POSIX强制要求的基础工具),无需tac这类非标准命令

替代简化写法(同样符合POSIX)

如果追求写法直观,也可以用多工具组合实现,不过进程数略多:

RevIP() {
  echo "$1" | sed 's/\./\n/g' | awk '{a[NR]=$0} END{for(i=NR;i>0;i--) print a[i]}' | paste -sd. -
}

该写法先拆分IP段存入数组,倒序输出后用paste合并,同样符合POSIX规范。

内容的提问来源于stack exchange,提问作者P Varga

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 23:15:34