Unix Tutorial 7 : Regular Expressions

Unix Regular Expressions

Regular expressions can be used with text processing commands like vi, grep, sed, awk, and others. Note that although some regular-expression patterns look similar to filename-matching patterns – the two are unrelated.
#1) ‘^’ – anchor character for start of line:
If the carat is the first character in an expression, it anchors the remainder of the expression to the start of the line.
  • Example1: Match all lines that start with ‘A’. g. “A plane”
    • Pattern: ‘^A’
  • Example2: Match all lines that start with ‘hello’. g. “hello there”
    • $ grep “^hello” file1
#2) ‘$’ – anchor character for end of line:
If the carat is the last character in an expression, it anchors the remainder of the expression to the end of the line.
  • Example1: Match all lines that end with ‘Z’. g. “The BUZZ”
    • Pattern: ‘Z$’
  • Example2: Match all lines that end with ‘done’. g. “well done”
    • $ grep “done$” file1
#3) ‘.’ – any single character:
The ‘.’ character matches any character except the end-of-line.
  • Example1: Match all lines that contain a single character. g. “a”
    • Pattern: ‘^.$’
  • Example2: Match all lines that end with ‘done’. g. “well done”
    • $ grep “done$” file1


#4) ‘[’ range ‘]’ – a range of characters:
This pattern matches the set of characters specified between the square brackets.
  • Example1: Match all lines that contain a single digit. g. “8”
    • Pattern: ‘^[0-9]$’
  • Example2: Match all lines that contain any of the letters ‘a’, ‘b’, ‘c’, ‘d’ or ‘e’
    • $ grep “[abcde]”
  • Example3: Match all lines that contain any of the letters ‘a’, ‘b’, ‘c’, ‘d’ or ‘e’.
    • $ grep “[a-e]” file1
#5) ‘[^’ range ‘]’ – a range of characters to be excluded:
This pattern matches any pattern except the set of characters specified between the square brackets.
  • Example1: Match all lines that do not contain a digit. g. “hello”
    • Pattern: ‘[^0-9]’
  • Example2: Match all lines that do not contain a vowel
    • $ grep “[^aeiou]” file1
#6) ‘*’ – ‘zero or more’ modifier:
This modifier matches with zero or more instances of the preceding character-set.
  • Example1: Match all lines that contain ‘ha’ followed by zero or more instances of ‘p’ and then followed by ‘y’. g. “happpy” or “hay”
    • Pattern: ‘hap*y’
  • Example2: Match all lines that start with a digit following zero or more spaces E.g. “ ” or “2.”
    • $ grep “ *[0-9]” file1
#7) ‘?’ – ‘zero or one’ modifier:
This modifier matches with zero or one instances of the preceding character-set.
  • Example1: Match all lines that contain ‘hap’ followed by zero or one instances of ‘p’ and then followed by ‘y’. g. “hapy” or “happy”
    • Pattern: ‘happ?y’
  • Example2: Match all lines that start with a digit followed by zero or one ‘:’ characters E.g. “1” or “2:”
    • $ grep “^[0-9]:?” file1

Comments

Popular posts from this blog

Hive Tutorial 31 : Analytic Functions

Hive Tutorial 37 : Performance Tuning