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

Re: Bashscripting



On 06.Apr 2005 - 22:30:27, Bruno Hertz wrote:
> Andreas Pakulat <apaku@gmx.de> writes:
> 
> > Hi,
> >
> > bin ja nun nicht sooo der Bash-Crack, deswegen erlaube ich mal hier
> > nach Hilfe zu fragen. Folgendes Konstrukt generiert mir meine
> > Mailbox-Liste für Mutt und ich würd das gerne beschleunigen. Das
> > Problem dürfte die while-Schleife sein (mutt ist schneller beim
> > starten wenn ich das rausnehme):
> >
> >
> > mailboxes =	`find $HOME/.Mail \
> > 			-type d \
> > 			-name "cur" \
> > 			-maxdepth 2 \
> > 			-printf "=%P\n" \
> > 		| sed -e "s&/cur$&&" \
> > 			-e "s/ /\\\ /g" \
> > 			-e 's&^\(.*\)$&"\1"&' \
> > 		| while read f; do \
> > 			if [[ $( echo $f | egrep -v ".[0-9]{4}-[0-9]{2}") || \
> > 			$(echo $f | egrep $(date +.%Y-%m)) ]] ; then \
> > 				echo $f; \
> > 			fi ; \
> > 			done  \
> > 		| sort | xargs echo`
> >
> > Ziel der Schleife ist, nur die "statischen" Maildirs und die
> > dynamischen des aktuellen Monats stehen zu lassen (also für April alle
> > <maildir>.Jahr-Monat auszusortieren wo nicht 2005-04 steht)
> 
> OK, das klabüster ich nicht auseinander. Nur soviel: deine egrep regexps
> lassen sich in sed auch entweder verwenden oder entsprechend übersetzen.
> Zusammen mit der Tatsache, daß 'sed -n' nicht mehr alle Zeilen printet
> sondern nur die bei denen du ein 'p' Kommando mit einer Bedingung (match)
> deiner Wahl angibst, sollte sich der ganze 'while read' Kram in sed
> reinziehen lassen. Vermutlich geht es sogar noch einfacher, aber da ich
> kein mutt/Maildir verwende habe ich kein Bild ...

Genau das wollte ich wissen - ein paar kleine Tipps wie das mit sed
geht (hatte ich mir ja gedacht - aber bisher wars noch nicht nervig
genug um die manpage vorzukramen und zu studieren). Bin ja nicht so'n
sed-Crack, ich nutze ja meist nur "s/XXX/YYY/g" (natürlich mit regexps
aber trotzdem)...

Andreas

-- 
Don't look now, but the man in the moon is laughing at you.



Reply to: