我如何根据 ip 地址对多行进行排序?

2017-04-14 15:48:33 +08:00
 ioiioi

譬如说我有以下的多行:

user-bind static ip-address 10.199.27.246 mac-address 00d0-d0b6-c09a vlan 7
user-bind static ip-address 10.199.27.223 mac-address f0de-f127-e980 vlan 7
user-bind static ip-address 10.199.28.26 mac-address 3c97-0ecd-7797 vlan 7
user-bind static ip-address 10.199.27.192 mac-address 0027-19a3-516d vlan 7
user-bind static ip-address 10.199.29.199 mac-address 000f-e2d2-5a38 vlan 7
user-bind static ip-address 10.199.27.98 mac-address 0090-27b6-cd8c vlan 7
user-bind static ip-address 10.199.27.124 mac-address 047d-7bd4-1eaf vlan 7

ip 地址有 3 个网段: 10.199.27.0/24, 10.199.28.0/24, 10.199.29.0/24 我想排列成:

user-bind static ip-address 10.199.27.98 mac-address 0090-27b6-cd8c vlan 7
user-bind static ip-address 10.199.27.124 mac-address 047d-7bd4-1eaf vlan 7
user-bind static ip-address 10.199.27.192 mac-address 0027-19a3-516d vlan 7
user-bind static ip-address 10.199.27.223 mac-address f0de-f127-e980 vlan 7
user-bind static ip-address 10.199.27.246 mac-address 00d0-d0b6-c09a vlan 7
user-bind static ip-address 10.199.28.26 mac-address 3c97-0ecd-7797 vlan 7
user-bind static ip-address 10.199.29.199 mac-address 000f-e2d2-5a38 vlan 7

使用 cut 、 sort 、 awk 、 sed 能实现吗?

4644 次点击
所在节点    Linux
34 条回复
gouchaoer
2017-04-14 18:59:22 +08:00
@lilydjwg 我 php 也能在一行搞定还比你快
gouchaoer
2017-04-14 19:00:25 +08:00
awk sed sort 那么难,去学它的语法用法干嘛
GjriFeu
2017-04-14 19:38:34 +08:00
@gouchaoer php 咋一行搞定啊
ioiioi
2017-04-14 21:33:40 +08:00
@realpg
如果在 excel 中做的话,该如何进行排序。
要记住,每一行是一串字符串,拷贝到 excel 中将会占据一个单元格。
realpg
2017-04-14 21:41:52 +08:00
@ioiioi #24
额 你这 EXCEL 不及格啊……

你说的是这个问题?点一下鼠标不就搞定了






EXCEL 能解决大量日常的需要编程小工具批量或者循环问题 而且比写代码简单百倍
ioiioi
2017-04-15 11:20:24 +08:00
@realpg

嗯,今早上试了一下, excel 有个分列的功能,但是 ip 地址的排序似乎有点问题,只能排成:

```
10.199.27.124
10.199.27.192
10.199.27.223
10.199.27.246
10.199.27.98
10.199.28.26
10.199.29.199
```

有什么解决的办法没?
itsjoke
2017-04-15 12:02:53 +08:00
这绑定有意义么?
如果主机多了那不得写死了,不是有免费 ARP 吗?
realpg
2017-04-15 12:10:51 +08:00
@ioiioi #26
copy 出额外字段再分列排序 不动原有的
runntuu
2017-04-15 15:49:51 +08:00
@ioiioi #26 对 ip 地址进行分割,然后对 ip 地址的第 3 段和第 4 段“自定义排序“ - ”升序”排序
如果是解决问题的话,用 excel 这样做确实方便,倒是感觉很不 geek = =
ioiioi
2017-04-15 15:52:47 +08:00
@itsjoke 怎么解决这个问题?我知道 dhcp snooping 可以防止客户私设 dhcp ,但是如何方式客户手工配置 ip 导致的 ip 地址冲突?
ioiioi
2017-04-15 15:54:30 +08:00
@realpg 我就是把 ip 地址单独 copy 出来,但是排序的时候, excel 会将.1xx 排在.9x 之前,实际上.98 应该要排在第一的。
realpg
2017-04-15 15:57:58 +08:00
@ioiioi #31

我说的也是 你没理解我说的操作

realpg
2017-04-15 16:00:06 +08:00
@ioiioi #31
补充一点 其实就是你对 EXCEL 不够深入了解,思路也受限

另外针对一下你最开始回复我的,其实 EXCEL 大师更能装 13
编程实现学学也就会了, EXCEL 谁没有,妹子也有,用这种谁都会的东西让他们得出 “我一定是用了假的 EXCEL ”的感觉 才是装 13 的高级境界
ioiioi
2017-04-15 16:07:42 +08:00
@realpg #33
有种醍醐灌顶的感觉, wow !
的确,让妹子感觉“我一定是用了假的 excel ”,这种装 13 的感觉才是最高境界!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/354878

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX