May the source be with you, but remember the KISS principle ;-)

Contents Bulletin Scripting in shell and Perl Network troubleshooting History Humor

Grep Reference

News Regex Man pages Options Sun Grep Options


Env variables Exit Status

 Sun has an old and pretty weak implementation of grep that does not support -P  (Perl-style regular expressions)option but it does has a good man page :-). I recommend either linking /usr/xpg4/bin/grep to grep or better using GNU version of grep 2.51(supplied by Sun or downloadable from ) instead, whenever possible. this is not much hassle to install it with Solaris.

Man pages

GNU grep documentation

Solaris 10 grep(1) manpage  – search a file for a pattern


Solaris 9 for SPARC Freeware List

Debian grep package

Filewatcher FTP Search -- nice tool for finding packages

Sun Grep

Solaris 9 Reference Manual Collection 


The following options are supported for both /usr/bin/grep and /usr/xpg4/bin/grep:

Precede each line by the block number on which it was found. This can be useful in locating block numbers by context (first block is 0).
Print only a count of the lines that contain the pattern.
Prevents the name of the file containing the matching line from being appended to that line. Used when searching multiple files.
Ignore upper/lower case distinction during comparisons.
Print only the names of files with matching lines, separated by NEWLINE characters. Does not repeat the names of files when the pattern is found more than once.
Precede each line by its line number in the file (first line is 1).
Suppress error messages about nonexistent or unreadable files.
Print all lines except those that contain the pattern.
Search for the expression as a word as if surrounded by \<  and \>.



Environment Variables

Exit Status

Solaris 9 Reference Manual Collection >> man pages section 5: Standards, Environments, and Macros >> Standards, Environments, and Macros >> regex(5) - internationalized basic and extended regular expression matching


regex- internationalized basic and extended regular expression matching

Regular Expressions (REs) provide a mechanism to select specific strings from a set of character strings. The Internationalized Regular Expressions described below differ from the Simple Regular Expressions described on the regexp(5) manual page in the following ways:

The Basic Regular Expression (BRE) notation and construction rules described in the BASIC  REGULAR  EXPRESSIONS  section apply to most utilities supporting regular expressions. Some utilities, instead, support the Extended Regular Expressions (ERE) described in the EXTENDED  REGULAR  EXPRESSIONS  section; any exceptions for both cases are noted in the descriptions of the specific utilities using regular expressions. Both BREs and EREs are supported by the Regular Expression Matching interfaces regcomp(3C) and regexec(3C).




In Solaris there are only basic and extended version of grep (egrep).  Ironically, despite the origin of the name (extended), Solaris egrep actually has less functionality that GNU grep with -P option.  A better way to is to replace Solaris grep with GNU grep which implements -P option. 

grep grep -E Available for egrep?
a\+ a+ yes
a\? a? yes
expression1\|expression2 expression1|expression2? yes
\(expression\) (expression1) yes
\{m,n\} {m,n} no
\{,n\} {,n} no
\{m,} {m,} no
\{m} {m} no

Fgrep -- fast grep

Following is the general format of the fgrep command.

     fgrep [ -bchilnvx ] [ -e -string ] string file_list
     fgrep [ -bchilnvx ] [ -e -string ] -f file file_list


The following list describes the options and their arguments that may be used to control how fgrep functions.

-b Displays the block number in which the pattern was found before the line that contains the matching pattern.
-c Displays only a total count of matching lines for each file processed.
-e -string The string begins with a dash. This allows you to specify a string that begins with a dash. Normally, any argument beginning with a dash is interpreted as an option, not a string or argument.
-f file Read in the strings to search for from file. This allows you to create a file containing all of the strings you want fgrep to search for in the file_list or standard input.
-h Suppress the displaying of filenames which precede lines that match the specified patterns when multiple files are searched.
-i Ignore the difference between uppercase and lowercase characters during comparisons.
-l Displays only the names of the files containing the specified pattern. The lines containing the patterns are not displayed.
-n Displays the line number before each line containing the pattern.
-v Displays only the lines that do not match the pattern. The v command in the ex editor performs the same type of function. It is an exception search. Search for every line except the ones containing the given pattern.
-x Displays only those lines matched in their entirety.


Regular Expressions Reference Sheet


Character Definition Example


The pattern has to appear at the beginning of a string. ^cat matches any string that begins with cat


The pattern has to appear at the end of a string. cat$ matches any string that ends with cat


Matches any character. cat. matches catT and cat2 but not catty


Bracket expression. Matches one of any characters enclosed. gr[ae]y matches gray or grey


Negates a bracket expression. Matches one of any characters EXCEPT those enclosed. 1[^02] matches 13 but not 10 or 12


Range. Matches any characters within the range. [1-9] matches any single digit EXCEPT 0


Preceding item must match one or zero times. colou?r matches color or colour but not colouur


Preceding item must match one or more times. be+ matches be or bee but not b


Preceding item must match zero or more times. be* matches b or be or beeeeeeeeee


Parentheses. Creates a substring or item that metacharacters can be applied to a(bee)?t matches at or abeet but not abet


Bound. Specifies exact number of times for the preceding item to match. [0-9]{3} matches any three digits


Bound. Specifies minimum number of times for the preceding item to match. [0-9]{3,} matches any three or more digits


Bound. Specifies minimum and maximum number of times for the preceding item to match. [0-9]{3,5} matches any three, four, or five digits


Alternation. One of the alternatives has to match. July (first|1st|1) will match July 1st but not July 2

POSIX Character Classes

Character Definition Example


alphanumeric character [[:alnum:]]{3} matches any three letters or numbers, like 7Ds


alphabetic character, any case [[:alpha:]]{5} matches five alphabetic characters, any case, like aBcDe


space and tab [[:blank:]]{3,5} matches any three, four, or five spaces and tabs


digits [[:digit:]]{3,5} matches any three, four, or five digits, like 3, 05, 489


lowercase [[:lower:]] matches a but not A


punctuation characters [[:punct:]] matches ! or . or , but not a or 3


all whitespace characters, including newline and carriage return [[:space:]] matches any space, tab, newline, or carriage return


uppercase alphabetics [[:upper:]] matches A but not a

Perl-Style Metacharacters

Character Definition Example


Default delimiters for pattern /colou?r/ matches color or colour


Append to pattern to specify a case insensitive match /colou?r/i matches COLOR or Colour


A word boundary, the spot between word (\w) and non-word (\W) characters /\bfred\b/i matches Fred but not Alfred or Frederick


A non-word boundary /fred\B/i matches Frederick but not Fred


A single digit character /a\db/i matches a2b but not acb


A single non-digit character /a\Db/i matches aCb but not a2b


The newline character. (ASCII 10) /\n/ matches a newline


The carriage return character. (ASCII 13) /\r/ matches a carriage return


A single whitespace character /a\sb/ matches a b but not ab


A single non-whitespace character /a\Sb/ matches a2b but not a b


The tab character. (ASCII 9) /\t/ matches a tab.


A single word character - alphanumeric and underscore /\w/ matches 1 or _ but not ?


A single non-word character /a\Wb/i matches a!b but not a2b




Groupthink : Understanding Micromanagers and Control Freaks : Toxic Managers : BureaucraciesHarvard Mafia : Diplomatic Communication : Surviving a Bad Performance Review : Insufficient Retirement Funds as Immanent Problem of Neoliberal Regime : PseudoScience : Who Rules America : Two Party System as Polyarchy : Neoliberalism  : The Iron Law of Oligarchy : Libertarian Philosophy


Skeptical Finance : John Kenneth Galbraith : Keynes : George Carlin : Skeptics : Propaganda  : SE quotes : Language Design and Programming Quotes : Random IT-related quotes : Oscar Wilde : Talleyrand : Somerset Maugham : War and Peace : Marcus Aurelius : Eric Hoffer : Kurt Vonnegut : Otto Von Bismarck : Winston Churchill : Napoleon Bonaparte : Ambrose Bierce : Oscar Wilde : Bernard Shaw : Mark Twain Quotes


Vol 26, No.1 (January, 2013) Object-Oriented Cult : Vol 25, No.12 (December, 2013) Rational Fools vs. Efficient Crooks: The efficient markets hypothesis : Vol 25, No.08 (August, 2013) Cloud providers as intelligence collection hubs : Vol 23, No.10 (October, 2011) An observation about corporate security departments : Vol 23, No.11 (November, 2011) Softpanorama classification of sysadmin horror stories : Vol 25, No.05 (May, 2013) Corporate bullshit as a communication method : Vol 25, No.10 (October, 2013) Cryptolocker Trojan (Win32/Crilock.A) : Vol 25, No.06 (June, 2013) A Note on the Relationship of Brooks Law and Conway Law


Fifty glorious years (1950-2000): the triumph of the US computer engineering : Donald Knuth : TAoCP and its Influence of Computer Science : Richard Stallman : Linus Torvalds  : Larry Wall  : John K. Ousterhout : CTSS : Multix OS Unix History : Unix shell history : VI editor : History of pipes concept : Solaris : MS DOSProgramming Languages History : PL/1 : Simula 67 : C : History of GCC developmentScripting Languages : Perl history   : OS History : Mail : DNS : SSH : CPU Instruction Sets : SPARC systems 1987-2006 : Norton Commander : Norton Utilities : Norton Ghost : Frontpage history : Malware Defense History : GNU Screen : OSS early history

Classic books:

The Peter Principle : Parkinson Law : 1984 : The Mythical Man-MonthHow to Solve It by George Polya : The Art of Computer Programming : The Elements of Programming Style : The Unix Hater’s Handbook : The Jargon file : The True Believer : Programming Pearls : The Good Soldier Svejk : The Power Elite

Most popular humor pages:

Manifest of the Softpanorama IT Slacker Society : Ten Commandments of the IT Slackers Society : Computer Humor Collection : BSD Logo Story : The Cuckoo's Egg : IT Slang : C++ Humor : ARE YOU A BBS ADDICT? : The Perl Purity Test : Object oriented programmers of all nations : Financial Humor : Financial Humor Bulletin, 2008 : Financial Humor Bulletin, 2010 : The Most Comprehensive Collection of Editor-related Humor : Programming Language Humor : Goldman Sachs related humor : Greenspan humor : C Humor : Scripting Humor : Real Programmers Humor : Web Humor : GPL-related Humor : OFM Humor : Politically Incorrect Humor : IDS Humor : "Linux Sucks" Humor : Russian Musical Humor : Best Russian Programmer Humor : Microsoft plans to buy Catholic Church : Richard Stallman Related Humor : Admin Humor : Perl-related Humor : Linus Torvalds Related humor : PseudoScience Related Humor : Networking Humor : Shell Humor : Financial Humor Bulletin, 2011 : Financial Humor Bulletin, 2012 : Financial Humor Bulletin, 2013 : Java Humor : Software Engineering Humor : Sun Solaris Related Humor : Education Humor : IBM Humor : Assembler-related Humor : VIM Humor : Computer Viruses Humor : Bright tomorrow is rescheduled to a day after tomorrow : Classic Computer Humor


The Last but not Least

Copyright © 1996-2014 by Dr. Nikolai Bezroukov. was created as a service to the UN Sustainable Development Networking Programme (SDNP) in the author free time. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License. Site uses AdSense so you need to be aware of Google privacy policy. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine. This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...

You can use PayPal to make a contribution, supporting hosting of this site with different providers to distribute and speed up access. Currently there are two functional mirrors: (the fastest) and


The statements, views and opinions presented on this web page are those of the author and are not endorsed by, nor do they necessarily reflect, the opinions of the author present and former employers, SDNP or any other organization the author may be associated with. We do not warrant the correctness of the information provided or its fitness for any purpose.

Created: May 16, 1997; Last modified: July 07, 2013