Frage

Ich arbeite an einem einig Build-Skripte, die ich auf nur standardisierten Funktionen hängen möchte. Ich brauche ein paar Dateien, die von Version zu sortieren. Sagen Sie die Dateien Bar-1. {0,2,3} bar-11. {0,2,3}.

In der Standardeinstellung ls gibt mir:

bar-1_0
bar-11_0
bar-11_2
bar-11_3
bar-1_2
bar-1_3

zu bekommen, was ich will, ist einfach 'ls -v' mit:

bar-1_0
bar-1_2
bar-1_3
bar-11_0
bar-11_2
bar-11_3

Das Problem ist, dass 'ls -v' ist nicht Standard . Standard sortieren scheint auch die Option Ich möchte fehlt, obwohl ich sein könnte bei alten Versionen der Spezifikationen suchen.

Kann mir jemand eine tragbare Art und Weise legen nahe, diesen Effekt zu kurz zu erreichen meine eigene Art Routine zu schreiben?

Danke, Rhys

War es hilfreich?

Lösung

sort -n -t- -k2 scheint zu tun, was Sie wollen. -n gibt Ihnen numerische (das heißt nicht alphabetisch) sortieren; -t- setzt die Feldtrennzeichen - und -k2 wählt das zweite Feld, das heißt die Versionsnummer.

Mein sort, auf Ubuntu, hat auch den Teil mit dem Unterstrich richtig, aber ich bin nicht sicher, ob das Standard. Um sicher zu gehen, könnten Sie durch die kleinere Version sortieren zuerst, dann von den großen Version.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top