diff options
Diffstat (limited to 'Functions/Example')
-rw-r--r-- | Functions/Example/zpgrep | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/Functions/Example/zpgrep b/Functions/Example/zpgrep new file mode 100644 index 000000000..8b1edaa1c --- /dev/null +++ b/Functions/Example/zpgrep @@ -0,0 +1,25 @@ +# Usage: zpgrep <perl5-compatible regex> <file1> <file2> ... <fileN> +# + +zpgrep() { +local file pattern + +pattern=$1 +shift + +if ((! ARGC)) then + set -- - +fi + +pcre_compile $pattern +pcre_study + +for file +do + if [[ "$file" == - ]] then + while read -u0 buf; do pcre_match $buf && print $buf; done + else + while read -u0 buf; do pcre_match $buf && print $buf; done < "$file" + fi +done +} |