Am Freitag, 26. August 2005 20:33 schrieb Dr. Jürgen Vollmer:
Wie erreiche ich effizient folgendes:
var="Diese Worte sollten sortiert werden"
varsortiert="Diese sollten sortiert werden Worte"
Ich hätte nun eine Zusatzfrage:
Wie schließe ich bestimmte Worte aus der Sortierung aus:
Die ursprüngliche Variable hat keine Leerzeichen, sondern trennt die Worte mit _, wobei ich dann _ durch Leerzeichen ersetzen lasse.
Wenn das _letzte_ Wort nun "_xy" bzw. nach der Ersetzung " xy" heißt oder "_yz", dann soll diese beiden Worte nicht in der Sortierung berücksichtigt werden.
Ich könnte nun vor der nach der Sortierung löschen. Was schlagt ihr vor? Mit sed?
dann besser gleich mit sed:
varsortiert=`echo $var | sed -e 's/_xy$//' -e 's/_/\n/g' | sort -f`
EInes ist mir noch syntaktisch unklar, wie ich mit sed in *1* Pipe _zuerst_ alle _ durch Leerzeichen ersetze und dann alle _xy und _yz am Ende durch nichts. Außerdem habe ich noch folgende Pipe verwendet um eventuell auftretende Leerzeichen am Anfang (kommt eher nicht vor) und am Ende sicher zu löschen: | sed 's/^ *//' | sed 's/ *$//'` Oder ist es besser mehrere Pipes zu verwenden? Syntaktisch sind für mich mehrere Pipes leichter zu lesen und die Performance dürfte bei einer Variable mit 100 Zeichen vernachlässigbar sein. Al