Peter Steffinger schrieb:
Hallo Liste
Nur so aus Neugier!
Also!
Ich habe eine Aufgabe aus meinem Buch gemacht, das ich derzeit lese. man soll die Ausgabe von ls -l mithilfe von sort und der Spalte 5 nummerisch nach dateilange sortieren.
Meine selbst erarbeitete Lösung istfolgende (alles afu einer Zeile): ls -l | tr -s ' ' '\t' | while read a ; do echo -ne "`echo ${a} | tr -s ' ' '\t' | cut -f 5`\t" ; echo "${a}" ; done | sort -n | cut -f 2-
Die Lösung des Autors ist folgende: ls -l | tr '\t' ' ' | tr -s ' ' ' ' | sort -t ' ' -n -k 5,5
Kann mir jeman nochmal genauer erklären was da abläuft? das -k und diese 5,5 kapiere ich nicht so recht.
-k gibt die Spalten (erst,letzte) an die für die Sortierung beachtet werden sollen. Hier: erste=5, letzte=5 also 5,5. Durch tr -s ' ' ' ' werden aufeinander folgenden Leerzeichen zu einem zusammengefasst.
Und warum nimmt man nicht gleich? ls -l | tr -s ' ' '\t' | sort -t '?' -n -k 5,5 (an Stelle des Fragezeichens natürlich das Tabulatorzeichen, das ich leider auch nicht recht weis.)
Damit wird jedes Leerzeichen durch ein Tab ersetzt. Es ist fraglich, ob dann die Dateigrösse immer noch für jede Zeile in der 5-ten Spalte läge. -- Mit freundlichen Grüßen Martin Blank -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org