Andreas Pakulat <[EMAIL PROTECTED]> writes:
> On 07.Apr 2005 - 13:35:04, Bruno Hertz wrote:
>> Andreas Pakulat <[EMAIL PROTECTED]> writes:
>> > On 07.Apr 2005 - 04:06:11, Bruno Hertz wrote:
>> >> Andreas Pakulat <[EMAIL PROTECTED]> writes:
>> >> > | sed -e "s&/cur$&&" \
>> >> > -e "s/ /\\\ /g" \
>> >> > -e 's&^\(.*\)$&"\1"&' \
>> >> > -e "/$(date +.%Y-%m)/ p" \
>> >> > -e '/.[0-9]\{4\}-[0-9]\{2\}/ ! p' \
>> >> > -n \
>>
>> Hast recht, sieht gar nicht so schlecht aus bei zweitem Hinsehen.
>> Vielleicht w�rde ich noch das Ausschluss-Pattern an den Anfang stellen,
>> und bei match ein 'd' machen, f�r next cycle, �hnlich wie continue in
>> while Schleifen. Damit sparst du dir die ganzen Replacements wo sie nicht
>> n�tig sind. Aber viel macht das nat�rlich auch nicht aus solange der
>> Input mengenm�ssig �berschaubar ist. Hauptsache du bist zufrieden ...
>
> Kannst du mir mal nen kleinen Tipp geben? Das Problem ist n�mlich, ich
> habe Ordner die heissen
>
> bla.fasel
>
> und welche die heissen
>
> bla.fasel.YYYY-MM
>
> f�r ML's. So, wenn ich man sed richtig verstehe (und dich), meinst du
> ich soll die Zeile
>
> -e '(.[0-9]\{4\}-[0-9]\{2\}/ !p'
>
> durch
>
> -e '(.[0-9]\{4\}-[0-9]\{2\}/ d'
>
> ersetzen? Dann w�rde er aber auch die erw�nschten ML-Ordner dieses
> Monats aussortieren. Ich will aber nur die ML-Ordner die nicht f�r
> diesen Monat sind aussortieren...
>
> Wenn ich nun aber -e '$(date ...)/ n' mache, um zuerst diese
> reinzubekommen und danach die obige Zeile mit 'd' matche, dann werden
> die nicht weiter bearbeitet (cur entfernt usw.)
Schon klar. Wie gesagt hatte ich kein Bild wie dein Input aussieht, aber
jetzt ist es etwas klarer.
Das Problem w�re nat�rlich am besten gel�st mit einem 'and' von regexps,
was aber (afaik) in sed nicht geht. Der Guru ;) hat aber nat�rlich immer
was in petto, n�mlich einen Branch wie z.B. in
sed \
-e "/$(date +.%Y-%m)/ b good" \
-e '/.[0-9]\{4\}-[0-9]\{2\}/ d' \
-e ':good' \
-e "s&/cur$&&" \
-e "s/ /\\\ /g" \
-e 's&^\(.*\)$&"\1"&' \
D.h. Matches f�r `date` gehen sofort zu label 'good', alle weiteren
Datum Matches werden deleted, aber 'nicht Datum Matches' gehen durch.
Involviert etwas mehr als urspr�nglich angenommen, und zugegebenerma�en
ein Beispiel aus der Fortgeschrittenenklasse, aber immer noch chique.
Das '-n' f�llt �brigens damit weg.
Gruss, Bruno.
PS: das obige branch Kommando ist nat�rlich eine Remineszenz (oder
Hommage, wenn du willst) an "Johnny B. Good".