dwww Home | Show directory contents | Find package

# Usage: zpgrep <perl5-compatible regex> <file1> <file2> ... <fileN>
#

zpgrep() {
local file pattern ret

pattern=$1
shift
ret=1

if ((! ARGC)) then
        set -- -
fi

zmodload zsh/pcre || return
pcre_compile -- "$pattern"
pcre_study

for file
do
        if [[ "$file" == - ]] then
                while IFS= read -ru0 buf; do
                        pcre_match -- "$buf" && ret=0 && print -r -- "$buf"
                done
        else
                while IFS= read -ru0 buf; do
                        pcre_match -- "$buf" && ret=0 && print -r -- "$buf"
                done < "$file"
        fi
done
return "$ret"
}

Generated by dwww version 1.15 on Wed Jun 26 01:55:50 CEST 2024.