在vim中对IP地址进行排序

标签 sorting vim ip-address

我刚刚在 vim 中发现了命令 :sort n(我怎么不知道?!),它几乎完全满足了我的需要。

不过,我想要排序的是一长串 IP 地址(它是一个“允许主机”文件,可以包含到我们的 apache 配置中),这对于:sort n 能够识别 123.45.6.7 应排序在 123.45.16.7 之前(例如)。

这是一个安全的假设,我应该减少对此的强制症并且不用担心,因为如果没有稍微复杂的 sedawk,我将无法做到这一点 命令什么的?

需要明确的是,所有行看起来都类似于:

Allow from 1.2.3.4
Allow from 5.6.7.8
Allow from 9.10.11.12

等等

最佳答案

Vim 排序在实践中似乎是稳定的(但不能保证)。因此你可以尝试:

:%sort n /.*\./
:%sort n /\.\d\+\./
:%sort n /\./
:%sort n

它将按最后一个点后面的数字排序(* 是贪婪的),然后按点和数字后面的第一个点后面的数字排序,然后按第一个点后面的数字排序,最后按第一个数字。

关于在vim中对IP地址进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9067559/

相关文章:

python - 如何按 Python (pandas) 中列中的出现次数对 Dataframe 进行排序

VIM中的XSD遍历

git rebase -i 和 gvim 不等我保存?

apache - 访问IP地址网站就像通过域名访问一样

php - 使用 PHP 和 MySQL 按多种类型对事件进行排序。

javascript - 下划线 : sortBy() based on multiple attributes

scala - Scala习惯用法,用于通过多个条件进行排序

html - 我如何设置 vim 7's html tidy options for "utf-8"编码?

hardware - 如何用 4 个 LED 指示 IP 地址?

python - 将 IP 列表与另一个 IP 列表或 IP 范围进行比较