[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bashscripting



On 07.Apr 2005 - 09:26:23, Joerg Sommer wrote:
> Andreas Pakulat <apaku@gmx.de> wrote:
> > Mit dem Tipp und ein wenig probieren hab ich jetzt:
> >
> > mailboxes = `find $HOME/.Mail \
> >                  -type d \
> >                  -name "cur" \
> >                  -maxdepth 2 \
> >                  -printf "=%P\n" \
> >             | sed -e "s&/cur$&&" \
> >                   -e "s/ /\\\ /g" \
> >                   -e 's&^\(.*\)$&"\1"&' \
> 
> Ich würde das mit dem ersten -e zusammenfassen:
>   -e 's&^\(.*\)/cur$&"\1"&'

Ich nicht - so ist es IMHO einfacher zu lesen und einen anderen
Vorteil hat es wohl nicht...

> Oder schreib das " am Anfang mit in den printf von find und ersetze /cur
> nur durch ".

Hmm, so gehts nicht

-printf "\"=%P\n\""

und auch nicht mit '' um den Ausdruck. Die "" erscheinen immer am
Anfang der Zeile.

> > 		  -e "/$(date +.%Y-%m)/ p" \
> > 		  -e '/.[0-9]\{4\}-[0-9]\{2\}/ ! p' \
> 
> Und könntest du diese beiden nicht auch gleich im find platzieren?
> -path "$(date +.%Y-%m)" -o -n -path "?[0-9][0-9][0-9][0-9]-[0-9][0-9]"

Hmm, also das erste geht nicht - ich schätze Mal die Subshell wird
nicht ausgeführt. Wobei ich auch noch ein * vor und hinter den "-not"
Pfad hängen musste, sonst nimmer er alle Einträge.

Hmm, ich glaube da bleibe ich lieber bei der sed-Lösung - zumal das
alles keinerlei Vorteile bringt.

> > 		  -n \
> > 	    | sort | xargs echo`
> 
> Wieso muss alles nochmal durch xargs echo? Quote doch nicht die Strings
> und lass xargs weg. Ich glaube, du musst dann noch das ganze `` in ""
> setzen, damit die Shell dir nicht die Strings an den Leerzeichen zerlegt.

Weil ich ansonsten nur den 1. Ordner bekomme, denn da sind
Zeilenumbrüche in der Liste. Und weder "" aussen um die Backticks noch
direkt vor ihnen hilft da und alles andere wird zu kompliziert....

Andreas

PS: Das Original-"Skript" ist nicht von mir.

-- 
You enjoy the company of other people.



Reply to: