Andreas Pakulat <[EMAIL PROTECTED]> 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.