亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標題: 關(guān)于IP地址排序 [打印本頁]

作者: bikkuri    時間: 2023-03-11 10:42
標題: 關(guān)于IP地址排序
大家好!
我有一個問題向大家請教。
有這樣一個文本,包含了一些IP地址。
[root@linux:/tmp]# cat a
192.168.12.49
192.168.12.5
192.168.12.50
192.168.140.49
192.168.140.5
192.168.140.50
我想對這些地址先對網(wǎng)段排序,即192.168.12網(wǎng)段在192.168.140網(wǎng)段前面,然后每個網(wǎng)段里的IP按自然數(shù)排序,即5,49,50的順序。
排出來的順序應(yīng)該是
192.168.12.5
192.168.12.49
192.168.12.50
192.168.140.5
192.168.140.49
192.168.140.50
可是我試了很多排序命令都排不出來這樣的順序。
[root@linux:/tmp]# cat a|sort -t "." -k4n
192.168.12.5
192.168.140.5
192.168.12.49
192.168.140.49
192.168.12.50
192.168.140.50
[root@linux:/tmp]# cat a|sort -t "." -k3 -k4n
192.168.12.49
192.168.12.5
192.168.12.50
192.168.140.49
192.168.140.5
192.168.140.50
[root@linux:/tmp]#
請問應(yīng)該如何才能排出期望的順序呢?應(yīng)該不需要用awk吧?



作者: bikkuri    時間: 2023-03-11 19:51
本帖最后由 bikkuri 于 2023-03-12 07:54 編輯

[root@linux:/tmp]# cat a|awk '{split($1,i,".");n=((i[1]*256+i[2])*256+i[3])*256+i[4];a[n]=$0}END{for(j=1;j<=asorti(a,b);j++)print a[b[j]]}'
192.168.12.5
192.168.12.49
192.168.12.50
192.168.140.5
192.168.140.49
192.168.140.50
[root@linux:/tmp]#

作者: 本友會機友會攝友會    時間: 2023-03-12 16:47
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: bikkuri    時間: 2023-03-13 08:20
[root@linux:/tmp]# cat a|awk '{split($1,i,".");n=((i[1]*256+i[2])*256+i[3])*256+i[4];a[n]=$0}END{slen=asorti(a,b);for(j=1;j<=slen;j++)print a[b[j]]}'
192.168.12.5
192.168.12.49
192.168.12.50
192.168.140.5
192.168.140.49
192.168.140.50
[root@linux:/tmp]#
作者: baby_神    時間: 2023-03-13 11:26
直接上 sort
  1. [root@test-02 ~]# cat a
  2. 192.168.12.49
  3. 192.168.12.5
  4. 192.168.12.50
  5. 192.168.140.49
  6. 192.168.140.5
  7. 192.168.140.50
  8. [root@test-02 ~]# sort -t "." -k 1n,1 -k 2n,2 -k 3n,3 -k 4n,4 a
  9. 192.168.12.5
  10. 192.168.12.49
  11. 192.168.12.50
  12. 192.168.140.5
  13. 192.168.140.49
  14. 192.168.140.50
復(fù)制代碼

作者: legs    時間: 2023-03-13 17:09
sort足矣,只是很多人忽略了用法:
  1. sort -nt.  -k3,3 -k4,4 a
復(fù)制代碼

作者: bikkuri    時間: 2023-03-16 10:39
非常感謝!學習了!
作者: wh7211    時間: 2023-05-19 15:48
回復(fù) 1# bikkuri


  1. sort -V a
復(fù)制代碼

作者: bikkuri    時間: 2023-05-23 15:31
哇!這是什么功能?一個-V直接就搞定了?
       -V, --version-sort
              natural sort of (version) numbers within text

回復(fù) 8# wh7211



作者: Shell_HAT    時間: 2023-07-26 17:26
回復(fù) 1# bikkuri


可是我試了很多排序命令都排不出來這樣的順序。

原因請參考:
http://www.72891.cn/thread-1773591-1-1.html#pid12746716
作者: ylfind    時間: 2023-08-03 14:21
回復(fù) 8# wh7211

絕了,真的妙哇,到處是隱藏的知識點。




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2