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

Re: Bashscripting



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 ...

Gruss, Bruno.



Reply to: