May the source be with you, but remember the KISS principle ;-)
Home Switchboard Unix Administration Red Hat TCP/IP Networks Neoliberalism Toxic Managers
(slightly skeptical) Educational society promoting "Back to basics" movement against IT overcomplexity and  bastardization of classic Unix

Grep Reference

News grep command  Regex 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 using GNU version of grep  (supplied by Sun or downloadable from ) instead, whenever possible. this is not much hassle to install it with Solaris.

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 : Two Party System as Polyarchy : Corruption of Regulators : Bureaucracies : Understanding Micromanagers and Control Freaks : Toxic Managers :   Harvard Mafia : Diplomatic Communication : Surviving a Bad Performance Review : Insufficient Retirement Funds as Immanent Problem of Neoliberal Regime : PseudoScience : Who Rules America : Neoliberalism  : The Iron Law of Oligarchy : Libertarian Philosophy


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


Vol 25, No.12 (December, 2013) Rational Fools vs. Efficient Crooks The efficient markets hypothesis : Political Skeptic Bulletin, 2013 : Unemployment Bulletin, 2010 :  Vol 23, No.10 (October, 2011) An observation about corporate security departments : Slightly Skeptical Euromaydan Chronicles, June 2014 : Greenspan legacy bulletin, 2008 : Vol 25, No.10 (October, 2013) Cryptolocker Trojan (Win32/Crilock.A) : Vol 25, No.08 (August, 2013) Cloud providers as intelligence collection hubs : Financial Humor Bulletin, 2010 : Inequality Bulletin, 2009 : Financial Humor Bulletin, 2008 : Copyleft Problems Bulletin, 2004 : Financial Humor Bulletin, 2011 : Energy Bulletin, 2010 : Malware Protection Bulletin, 2010 : Vol 26, No.1 (January, 2013) Object-Oriented Cult : Political Skeptic Bulletin, 2011 : 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.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 Technology is dominated by two types of people: those who understand what they do not manage and those who manage what they do not understand ~Archibald Putt. Ph.D

Copyright � 1996-2021 by Softpanorama Society. was initially created as a service to the (now defunct) UN Sustainable Development Networking Programme (SDNP) without any remuneration. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available to advance understanding of computer science, IT technology, economic, scientific, and social issues. We believe this constitutes a 'fair use' of any such copyrighted material as provided by section 107 of the US Copyright Law according to which such material can be distributed without profit exclusively for research and educational purposes.

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 to buy a cup of coffee for authors of this site


The statements, views and opinions presented on this web page are those of the author (or referenced source) and are not endorsed by, nor do they necessarily reflect, the opinions of the Softpanorama society. We do not warrant the correctness of the information provided or its fitness for any purpose. The site uses AdSense so you need to be aware of Google privacy policy. You you do not want to be tracked by Google please disable Javascript for this site. This site is perfectly usable without Javascript.

Last modified: March 12, 2019