I am trying to sort file names in a directory as below.
$ ls -1v
file-1.10.0-114.1.1.x86.tb1_2.rpm
file-1.10.0-114.2.2.x86.tb1_2.rpm
file-1.10.0-114.11.2.x86.tb1_2.rpm
file-1.10.0-114.x86.tb1_2.rpm
file-1.10.0-115.1.1.x86.tb1_2.rpm
file-1.10.0-115.2.2.x86.tb1_2.rpm
file-1.10.0-115.3.1.x86.tb1_2.rpm
file-1.10.0-115.22.1.x86.tb1_2.rpm
file-1.10.0-115.x86.tb1_2.rpm
But, my expectation was the below.
file-1.10.0-114.x86.tb1_2.rpm
file-1.10.0-114.1.1.x86.tb1_2.rpm
file-1.10.0-114.2.2.x86.tb1_2.rpm
file-1.10.0-114.11.2.x86.tb1_2.rpm
file-1.10.0-115.x86.tb1_2.rpm
file-1.10.0-115.1.1.x86.tb1_2.rpm
file-1.10.0-115.2.2.x86.tb1_2.rpm
file-1.10.0-115.3.1.x86.tb1_2.rpm
file-1.10.0-115.22.1.x86.tb1_2.rpm
I tried sort -V
, but it showed the same result.
How do I sort like this way?
file-1.10.0-115.x86.tb1_2.rpm
to be sorted as if it wasfile-1.10.0-115.0.0.x86.tb1_2.rpm
?-v
switch already makesls
put.22.
after.2.
and.3.
.