>Anybody feel like producing an all builtin function for this? >Something like "remove pattern list" or "remove index list". It >shouldn't be too hard. Trivial: fn remove { pat=() i=() list=() { pat=$1 shift || { echo 'Usage erorr' >[1=2] ; return 1; } for (i) eval ~ $i $pat || list=($list $i) echo $list } } remove '*.c' foo.c bar baz.c path=`{remove /usr/share/bin $path}