2014-04-08 13 views
13

Ho un mucchio di PDF che sto cercando di aggiungere insieme, e ho un programma che, dato un elenco di file, li aggiungerà ad un PDF .Bash Ordina come ordinamento naturale di Windows '

Il problema è che il piping dei nomi di file in sort non produce l'ordine desiderato. Nessuna delle bandiere di sort mi dà quello che voglio. Ho alcuni esempi qui sotto:

ordinamento desiderata:

test1.pdf 
test2.pdf 
test10.pdf 

ordinamento Ottenuto utilizzando sorta:

test1.pdf 
test10.pdf 
test2.pdf 

Per ulteriori informazioni su esattamente ciò che costituisce il criterio di ordinamento che desidero , vedi:

http://msdn.microsoft.com/en-us/library/bb759947.aspx

risposta

18

Supponendo che si sta utilizzando GNU sorta, utilizzare l'opzione -V:

-V, --version-sort 
      natural sort of (version) numbers within text 

Per il vostro ingresso, sarebbe producono:

test1.pdf 
test2.pdf 
test10.pdf 
+4

Se si utilizza 'ls', si può fare' ls - 1v', che ti dà questo. –

+0

@LaughDonor Grazie. Non mi capita di usare 'ls' molto. – devnull

+0

Sfortunatamente, -V non funziona per i nomi di file che ho. Sono nella forma: sec2_pages12-20, sec2_pages21-30 ecc ... l'opzione ls funziona totalmente, grazie! – jknielse

Problemi correlati