Regular Expressions   «Prev  Next»
Lesson 1

Using grep with Regular Expressions

How is a Regular Expression used with the UNIX grep command

Affinity Between Intricate Patterns and UNIX's grep Directive
Within the realm of computer systems, the utilization of intricate patterns known as "Regular Expressions" holds paramount importance. You might ask yourself: "What is the relationship between regex and UNIX's grep command?"
In truth, the synergy between the 1) regex and 2) grep is not only consequential but also advantageous for data sifting endeavors. Regular Expressions, colloquially dubbed "regex," encapsulate a unique sequence of characters which represent a search pattern. These patterns facilitate a myriad of operations, including but not limited to
  1. text manipulation,
  2. filtration, and
  3. dissection.

The UNIX operating system, revered for its adaptability and resilience, encompasses an array of commands. Among them lies the grep directive, an abbreviation for "Global Regular Expression Print." This tool's purpose is the identification and extraction of text strings conforming to a specified regex pattern. In essence, grep serves as a steadfast ally in the quest to distill information from vast textual landscapes.
To employ the grep command in conjunction with a regular expression, one must first determine the desired search pattern. The resulting regex, wrapped in single or double quotes, is then proffered as an argument to grep. The command's invocation typically follows this format:
grep 'regex_pattern' file_name

Upon execution, grep traverses the designated file, meticulously scanning each line for matches to the supplied regex. Should the command stumble upon a congruent text fragment, it dutifully returns the entire line containing the sought-after pattern.
To determine if nginx is running on your sever type in:
ps -ef | grep nginx

As an exemplar, consider the following command:
grep '^[aeiou]' file.txt

In this scenario, the regex "^[aeiou]" signifies the search for lines commencing with a lowercase vowel. Thus, the grep command diligently sifts through file.txt, unveiling all lines adhering to the stipulated pattern.
In conclusion, the harmonious marriage between 1) Regular Expressions and 2) UNIX's grep command unveils a powerful mechanism for data manipulation and extraction. By harnessing the potential of intricate regex patterns, users can expedite their search for pertinent information within data sets or files.
It is imperative to acknowledge that the grep command's efficacy is not solely dependent on its collaboration with Regular Expressions. Indeed, various command-line options exist to augment grep's functionality. For instance, the "-i" flag disregards letter casing, while "-n" discloses the line numbers of matched results. Familiarity with these supplementary features can bolster one's proficiency in employing grep for their data parsing needs. To encapsulate, the alliance of regex patterns with the grep command furnishes UNIX users with a robust and versatile tool to navigate the labyrinthine realm of text processing. By mastering the art of crafting intricate search patterns and understanding the grep command's nuances, one can unlock the full potential of this formidable duo and elevate their data analysis endeavors to new heights.
This module covers regular expression syntax, which is used for performing wildcard searches of the contents of files.
If you have used a word processing application on another operating system, you are probably familiar with the concept of regular expressions. Many UNIX programs that manipulate or search for text can take advantage of regular expressions. This module will cover regular expressions as used by grep, a program that is commonly used to search the contents of files.
By the end of this module, you will be able to: In the next lesson, you will learn about regular expressions.

  1. Describe what regular expressions are
  2. Identify how the use of quotes affects the interpretation of regular expressions.
  3. Create regular expressions using various metacharacters.
  4. Use the backslash (\) to disable the special meaning of a character


For users already familiar with the concept of regular expression metacharacters, this section may be bypassed. However, this preliminary material is crucial to understanding the variety of ways in which grep, sed, and awk are used to display and manipulate data. What is a regular expression? A regular expression is just a pattern of characters used to match the same characters in a search. In most programs, a regular expression is enclosed in forward slashes; for example, /love/ is a regular expression delimited by forward slashes, and the pattern love will be matched any time the same pattern is found in the line being searched. What makes regular expressions interesting is that they can be controlled by special metacharacters. If you are new to the idea of regular expressions, let us look at an example that will help you understand what this whole concept is about.

You must understand what the following predefined character classes do:
Any character (may or may not match line terminators) (Depending on ?m).
\d  A digit: [0-9]
\D  A non-digit: [^0-9]
\s  A whitespace character: [ \t\n\x0B\f\r]
\S  A non-whitespace character: [^\s]
\w  A word character: [a-zA-Z_0-9]
\W  A non-word character: [^\w]
\b  A word boundary
\B  A non-word boundary