Linux::ls command... wie mache ich... ?



  • Hey Folks,

    hab immer gedacht das ich mich drumherum drücken kann, aber Linux/Unix ist wohl stärker, quäl mich immer mit den Manpages :S
    Ich möchte mit dem "ls" command ein Listing eines Verzeichnisses erstellen,d.h. wenn ich in einem Verzeichnis die Dateien

    name1000e1.txt
    name2000e2.txt
    name1500e2.txt
    name1000e3.txt
    name7000e1.txt

    habe, dann möchte ich mittels "pipe" in eine Listings Datei schreiben, soweit kein Problem "ls >listing.txt" wie kann ich mit den ls Optionen aber die Reihenfolge derart "sortieren", daß die Datei mit dem "kleinsten" Zahlenwert oben steht und mit dem größten ganz unten.

    Also so:

    name1000e1.txt
    name7000e1.txt
    name1500e2.txt
    name2000e2.txt
    name1000e3.txt

    Danke Winn



  • mir würd da eigentlich nur n übler hack einfallen, etwa soetwas:

    #!/bin/bash
    for ($i = 0; $i < 10; $i++)
    {
        exec: ls | grep "*e$i " >>datei // >> haengt an, und löscht nicht
    }
    

    dat is jetz übelster pseudocode, aber du müsstest das in bash umbauen können. der output sollte sein, dass alle dateien mit irgendwas_e[zahl] an die datei angehaengt werden, wobei die $i von 0 bis 9 geht, womit du diese sortierung hinkriegen müsstest 😃
    vlt hilfts ja



  • Holaaaaa... ich dachte das würde einfacher gehen... Danke !



  • na also das müsste aber auch einfacher gehen.
    Ich sitz jetzt leider nicht an einem linuxrechner und kann dir somit keine 100% sichere lösung geben......probiere mal sowas wie:

    ls|sort|tee <Dateiname>
    

    Falls es nicht funzt schau dir einfach mal sort genauer an......da hast du sortieroptionen en masse und du solltest damit ans ziel kommen.
    Statt tee kannste auch > nehmen......tee wird es wohl noch zusätzlich auf den stdout printen.


Anmelden zum Antworten