2 # Filter lines of input with a shell predicate.
3 # Usage: filter [varname (default: x)] predicate
4 # Example: ls | filter '[ -d "$x" ] && expr "$x" : ".*[0-9]"'
5 [ $# -gt 1 ] && var="$1" && shift || var=x
6 sh -c "while IFS= read -r $var; do
7 $@ >/dev/null && echo \"\$$var\"