簡體   English   中英

Linux按數值對文件夾進行排序

[英]Linux sort folders by numerical value

我們有一個數據集

ls -1 /opt/test/kortinfo/
1.0.0
1.0.1
1.0.2
1.1.0
1.10.0            // Error
1.2.0
1.3.0
1.4.0
1.5.0
1.5.1
1.5.2
1.6.0
1.7.0
1.8.0
1.8.1
1.9.0

正如我們在這里看到的,文件夾1.10.0放錯了位置,因為它大於1.9.0

我們嘗試通過sort -gsort -nsort -ng傳遞它,但是它們都不能正確顯示按其數字值排序的文件夾。

ls -1 /opt/test/kortinfo/ | grep -v "siste" | sort -ng
1.0.0
1.0.1
1.0.2
1.1.0
1.10.0            // Still the same error
1.2.0
1.3.0
1.4.0
1.5.0
1.5.1
1.5.2
1.6.0
1.7.0
1.8.0
1.8.1
1.9.0

有誰知道我該如何正確地按數字值對它們進行排序?

使用ls-v開關:

ls -v

man ls說:

-v文本中自然的(版本)數字排序

作為參考,如果適用,還可以通過用大括號擴展填充版本號來解決此問題。

這是一個例子

touch 1.{01..10}.{01..05}

這將使用適當的版本表示填充來創建版本,並顯着簡化您的生活。

結果:

mace-windu:useme [ ~/Desktop/1 ] ls -1
1.01.01
1.01.02
1.01.03
1.01.04
1.01.05
1.02.01
1.02.02
1.02.03
1.02.04
1.02.05
1.03.01
1.03.02
1.03.03
1.03.04
1.03.05
1.04.01
1.04.02
1.04.03
1.04.04
1.04.05
1.05.01
1.05.02
1.05.03
1.05.04
1.05.05
1.06.01
1.06.02
1.06.03
1.06.04
1.06.05
1.07.01
1.07.02
1.07.03
1.07.04
1.07.05
1.08.01
1.08.02
1.08.03
1.08.04
1.08.05
1.09.01
1.09.02
1.09.03
1.09.04
1.09.05
1.10.01
1.10.02
1.10.03
1.10.04
1.10.05

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM