My New Hugo Site

  1. Bash
    1. Filters
      1. grep
      2. Sed
      3. jq
    2. Shellspec
  2. Design
  3. Architectural Patterns
    1. Systemd
    2. Message Broker
    3. JSON-RPC
  4. Go
    1. Concurrency
    2. Web Applications
    3. Compound Data
    4. Json
    5. Go vs Erlang
  5. Prolog Cookbook
  6. Documentation
    1. Hugo
      1. Go Html Template
      2. Table of Contents
    2. HTML
    3. CSS
      1. Color
      2. Style Guides
      3. Layout
    4. Mathjax
  7. Visualization
    1. D3
      1. Venn Diagrams
    2. SVG
    3. Visjs
      1. Network
  8. Data
    1. Yaml
    2. Events
      1. JSON-LD
    3. JSON
      1. jCal
    4. SQL
  9. JavaScript

grep

grep searches files for patterns (described as regular expressions) and prints matching lines.

grep [option...] [patterns] [file...]

Generally, you should always enclose the regular expression in single quotes to avoid the interpretation and expansion of the meta-characters by the shell.

To ignore case when searching, use the -i option (or –ignore-case).

Regular Expressions

grep understands three different versions of regular expression syntax: basic (BRE), extended (ERE), and Perl-compatible (PCRE).

-G, –basic-regexp PATTERNS are basic regular expressions

This is the default.

As explained in Basic vs Extended Regular Expressions the key difference between basic and extended is special (or meta) characters have to be escaped (ie backslashed).

-E, –extended-regexp PATTERNS are extended regular expressions

Historically, this was called egrep.

-P, –perl-regexp PATTERNS are Perl regular expressions

Perl Compatible Regular Expressions

-F, –fixed-strings PATTERNS are strings

Historically, this was called fgrep.

Extracting blocks of text from file