## 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 occurances 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 sepeartor. The comma sepearates 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.

## 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.