## table of contents

NUMGREP(1) | User Contributed Perl Documentation | NUMGREP(1) |

# NAME¶

numgrep - This program is the numeric equivilent of the grep utility.

# SYNOPSIS¶

**numgrep** [-dhlV] <FILE>

| **numgrep** [-dhlV] (Input on STDIN from pipeline.)

**numgrep** [-dhlV] (Input on STDIN. Use Ctrl-D to stop.)

# DESCRIPTION¶

**numgrep** searches for different occurrences of numbers
through the use of numeric expressions.

# OPTIONS¶

-l Print the matching numbers out one per line instead of printing the entire line they are on. -h Help: You're looking at it. -V Increase verbosity. -d Debug mode. For developers

# EXPRESSIONS¶

**numgrep** uses a special numeric expression matching system.
Basically, it searches for ranges, factors and sequences of numbers. Here is
a list of the syntax characters and some sample expressions that will get
you going:

/<expression>/ Put your expression or set of expressions between these two forward slashes. .. Range expression. A number must be used on the left and/or right of this expression to specify that numbers between, greater than or less than the numbers specified should be matched. , Expression separator. The comma separates one complete expression from another in a set enclosed by //. m<n> Multiples of <n>. This operator, followed by a number <n> will match any number <x> that is an integer multiple of <n>. Meaning that <x> = <n> times <y>, where <y> is any integer. f<n> Factors of <n>. This operator, followed by a number <n> will match any number <x> that is an integer factor of <n>. Meaning that <x> = <n> divided by <y>, where <y> is any integer.

** NOTE:** Checking for factors and multiples is very fast
because it

is checked by doing a single modulus operation on two numbers.

**Examples:**

/2..10/ Match any number between 2 and 10. /2..10,20..30/ Match any number between 2 and 10 or between 20 and 30. /56,34,512,45,67/ Match any of the numbers 56, 34, 512, 45 or 67. /m3/ Match any integer that is a multiple of 3. /f1024/ Match any integer that is a factor of 1024. $ numrange -N /1..1000/ | numgrep /f1024/ 1 2 4 8 16 32 64 128 256 512 $

# BUGS¶

**numgrep** can't handle certain situations properly. Such as
if it encounters a number with leading zeros, it will treat it as an octal
number and thus might not match the way you would expect.

**numgrep** does not yet allow you to mix numbers and text in
the matching expression. So you can not do something like 'numgrep
/port=0..1023/ firewall.log'. But this will be changed in the future.

# SEE ALSO¶

numaverage(1), numbound(1), numinterval(1), numnormalize(1), numprocess(1), numsum(1), numrandom(1), numrange(1), numround(1)

# COPYRIGHT¶

numgrep is part of the num-utils package, which is copyrighted by Suso Banderas and released under the GPL license. Please read the COPYING and LICENSE files that came with the num-utils package

Developers can read the GOALS file and contact me about providing submitions or help for the project.

# BUGS¶

numgrep will round decimal numbers with more than 15 digits of accuracy. This is mostly due to limit's in the way programming languages deal directly with numbers.

# MORE INFO¶

More info on numgrep can be found at:

2020-06-09 | perl v5.30.3 |