CSCI 330 UNIX and Network Programming Unit IV Shell, Part 2.

Slides:



Advertisements
Similar presentations
CSCI 330 T HE UNIX S YSTEM Regular Expressions. R EGULAR E XPRESSION A pattern of special characters used to match strings in a search Typically made.
Advertisements

LINUX System : Lecture 3 (English-Only Lecture) Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang University Acknowledgement.
7 Searching and Regular Expressions (Regex) Mauro Jaskelioff.
Regular Expression Original Notes by Song Guo. What Regular Expressions Are Exactly - Terminology a regular expression is a pattern describing a certain.
CS 497C – Introduction to UNIX Lecture 22: - The Shell Chin-Chih Chang
1 CSE 390a Lecture 7 Regular expressions, egrep, and sed slides created by Marty Stepp, modified by Jessica Miller
CS 497C – Introduction to UNIX Lecture 31: - Filters Using Regular Expressions – grep and sed Chin-Chih Chang
Shell Basics CS465 - Unix. Shell Basics Shells provide: –Command interpretation –Multiple commands on a single line –Expansion of wildcard filenames –Redirection.
Now, return to the Unix Unix shells: Subshells--- Variable---1. Local 2. Environmental.
Regular Expressions. u A regular expression is a pattern which matches some regular (predictable) text. u Regular expressions are used in many Unix utilities.
Shell Script Examples.
Chapter 4: UNIX File Processing Input and Output.
Regular Expressions A regular expression defines a pattern of characters to be found in a string Regular expressions are made up of – Literal characters.
Last Updated March 2006 Slide 1 Regular Expressions.
Overview of the grep Command Alex Dukhovny CS 265 Spring 2011.
System Programming Regular Expressions Regular Expressions
Exam Revision. Exam Details Time 90 minutes (1hour 30 minutes). Six questions! How long per question? Five parts per question. How long for each part?
 Text Manipulation and Data Collection. General Programming Practice Find a string within a text Find a string ‘man’ from a ‘A successful man’
1 Operating Systems Lecture 3 Shell Scripts. 2 Brief review of unix1.txt n Glob Construct (metacharacters) and other special characters F ?, *, [] F Ex.
INFO 320 Server Technology I Week 7 Regular expressions 1INFO 320 week 7.
Unix Talk #2 (sed). 2 You have learned…  Regular expressions, grep, & egrep  grep & egrep are tools used to search for text in a file  AWK -- powerful.
The UNIX Shell. The Shell Program that constantly runs at terminal after a user has logged in. Prompts the user and waits for user input. Interprets command.
REGULAR EXPRESSIONS. Lexical Analysis Lexical analysers can be constructed by programs such as LEX These programs employ as input a description of the.
Additional UNIX Commands. 222 Lecture Overview  Multiple commands and job control  More useful UNIX utilities.
Introduction to Bash Programming Ellen Zhang. Previous three classes What have we learnt so far ?
Linux+ Guide to Linux Certification, Third Edition
UNIX Shell Script (1) Dr. Tran, Van Hoai Faculty of Computer Science and Engineering HCMC Uni. of Technology
CS465 - UNIX The Bourne Shell.
Module 6 – Redirections, Pipes and Power Tools.. STDin 0 STDout 1 STDerr 2 Redirections.
Introduction to Unix – CS 21 Lecture 6. Lecture Overview Homework questions More on wildcards Regular expressions Using grep Quiz #1.
Agenda Regular Expressions (Appendix A in Text) –Definition / Purpose –Commands that Use Regular Expressions –Using Regular Expressions –Using the Replacement.
CSC 352– Unix Programming, Spring 2015 April 28 A few final commands.
I/O Redirection and Regular Expressions February 9 th, 2004 Class Meeting 4.
Regular Expression - Intro Patterns that define a set of strings (or, pieces of a string) Not wildcards (similar notion, but different thing) Used by utilities.
Appendix A: Regular Expressions It’s All Greek to Me.
©Brooks/Cole, 2001 Chapter 9 Regular Expressions.
Regular Expressions Todd Kelley CST8207 – Todd Kelley1.
Shell Advanced Features. Module 8 Shell Advanced Features ♦ Introduction In Linux systems, the shells are often referred to as command line interfaces.
Sys Prog & Scrip - Heriot Watt Univ 1 Systems Programming & Scripting Lecture 12: Introduction to Scripting & Regular Expressions.
May 2008CLINT-LIN Regular Expressions1 Introduction to Computational Linguistics Regular Expressions (Tutorial derived from NLTK)
I/O Redirection & Regular Expressions CS 2204 Class meeting 4 *Notes by Doug Bowman and other members of the CS faculty at Virginia Tech. Copyright
CSCI 330 T HE UNIX S YSTEM Bash shell. B ASH S HELL S PECIFICS Shell login and logout files Shell variables Prompt History IO redirection 2 CSCI 330 -
Regular Expressions CS 2204 Class meeting 6 Created by Doug Bowman, 2001 Modified by Mir Farooq Ali, 2002.
1 Lecture 9 Shell Programming – Command substitution Regular expressions and grep Use of exit, for loop and expr commands COP 3353 Introduction to UNIX.
CIT 383: Administrative ScriptingSlide #1 CIT 383: Administrative Scripting Regular Expressions.
CSCI 330 UNIX and Network Programming Unit IX: Shell Scripts.
CSCI 330 UNIX and Network Programming Unit IV Shell, Part 2.
CSE 374 Programming Concepts & Tools Hal Perkins Fall 2015 Lecture 5 – Regular Expressions, grep, Other Utilities.
What are Regular Expressions?What are Regular Expressions?  Pattern to match text  Consists of two parts, atoms and operators  Atoms specifies what.
Agenda The Bourne Shell – Part II Special Characters Ambiguous File Reference Variable Names and Values User Created Variables Read-only Variables (Positional.
What is grep ?  % man grep  DESCRIPTION  The grep utility searches text files for a pattern and prints all lines that contain that pattern. It uses.
-Joseph Beberman *Some slides are inspired by a PowerPoint presentation used by professor Seikyung Jung, which was derived from Charlie Wiseman.
Pattern Matching: Simple Patterns. Introduction Programmers often need to scan a file, directory, etc. for a specific substring. –Find all files that.
May 2006CLINT-LIN Regular Expressions1 Introduction to Computational Linguistics Regular Expressions (Tutorial derived from NLTK)
ICS611 Lex Set 3. Lex and Yacc Lex is a program that generates lexical analyzers Converting the source code into the symbols (tokens) is the work of the.
CIRC Summer School 2016 Baowei Liu
Regular Expressions ICCM 2017
Looking for Patterns - Finding them with Regular Expressions
CIRC Winter Boot Camp 2017 Baowei Liu
Regular Expression - Intro
Lecture 9 Shell Programming – Command substitution
Writing Shell Scripts ─ part 3
Folks Carelli, Instructor Kutztown University
The Linux Command Line Chapter 7
Unix Talk #2 (sed).
CSE 303 Concepts and Tools for Software Development
CSCI The UNIX System Regular Expressions
1.5 Regular Expressions (REs)
CSC 4630 Meeting 4 January 29, 2007.
LPI Linux Certification
Presentation transcript:

CSCI 330 UNIX and Network Programming Unit IV Shell, Part 2

more bash shell basics Wildcards Regular expressions Quoting & escaping 2CSCI UNIX and Network Programming

Command Line Behavior Special characters have special meaning: $ variable reference = assignment ! event number ; command sequence ` command substitution > < | i/o redirect & background * ? [ ] { } wildcards regular expressions ‘ “ \ quoting & escaping 3CSCI UNIX and Network Programming

Wildcards: * ? [ ] { } A pattern of special characters used to match file names on the command line * zero or more characters Ex: % rm * % ls *.txt % wc -l assign1.* % cp a*.txt docs ? exactly one character % ls assign?.cc % wc assign?.?? % rm junk.??? 4CSCI UNIX and Network Programming

Wildcards: [ ] { } [...] matches any of the enclosed characters [a-z] matches any character in the range a to z if the first character after the [ is a ! or ^ then any character that is not enclosed is matched within [], [:class:] matches any character from a specific class: alnum, alpha, blank, digit, lower, upper, punct { word1,word2,word3,...} matches any entire word 5CSCI UNIX and Network Programming

Wildcards: [ ] { } examples % wc –l assign[123].cc % ls csci[2-6]30 % cp [A-Z]* dir2 % rm *[!cehg] % echo [[:upper:]]* % cp {*.doc,*.pdf} ~ 6CSCI UNIX and Network Programming

Regular Expression A pattern of special characters to match strings in a search Typically made up from special characters called meta-characters:. * + ? [ ] { } ( ) Regular expressions are used throughout UNIX: utilities: grep, awk, sed,... 2 types of regular expressions: basic vs. extended 7CSCI UNIX and Network Programming

Metacharacters 8. Any one character, except new line [a-z] Any one of the enclosed characters (e.g. a-z) * Zero or more of preceding character ? also: \? Zero or one of the preceding characters + also: \+ One or more of the preceding characters ^ or $ Beginning or end of line \ Beginning or end of word ( ) also: \( \) Groups matched characters to be used later (max = 9) | also: \| Alternate x\{m,n\} Repetition of character x between m and m times CSCI UNIX and Network Programming

Basic vs. Extended Extended regular expressions use these meta-characters: ? + { } | ( ) Basic regular expressions use these meta-characters: \? \+ \{ \} \| \( \) 9CSCI UNIX and Network Programming

The grep Utility searches for text in file(s) Syntax: grep "search-text" file(s) search-text is a basic regular expression egrep "search-text" file(s) search-text is an extended regular expression 10CSCI UNIX and Network Programming

The grep Utility Examples: % grep "root" /var/log/auth.log % grep "r..t" /var/log/syslog % grep "bo*t" /var/log/boot.log % grep "error" /var/log/*.log Caveat: watch out for shell wild cards if not using “” 11CSCI UNIX and Network Programming

Regular Expression consists of atoms and operators an atom specifies what text is to be matched and where it is to be found an operator combines regular expression atoms 12CSCI UNIX and Network Programming

Atoms any character (not a meta-character) matches itself. matches any single character [...] matches any of the enclosed characters ^ $ \ anchor: beginning or end of line or word \1 \2 \3... back reference 13CSCI UNIX and Network Programming

Example: [...] 14CSCI UNIX and Network Programming

short-hand classes [:alpha:] letters of the alphabet [:alnum:] letters and digits [:upper:] [:lower:] upper/lower case letters [:digit:] digits [:space:] white space [:punct:] punctuation marks 15CSCI UNIX and Network Programming

Anchors Anchors tell where the next character in the pattern must be located in the text data 16CSCI UNIX and Network Programming

Back References: \n used to retrieve saved text in one of nine buffers ex.: \1 \2 \3...\9 buffer defined via group operator ( ) 17CSCI UNIX and Network Programming

Operators sequence | alternate {n,m} repetition ( ) group & save 18CSCI UNIX and Network Programming

Sequence Operator In a sequence operator, if a series of atoms are shown in a regular expression, there is no operator between them 19CSCI UNIX and Network Programming

Alternation Operator: | or \| searches for one or more alternatives Note: grep uses | with backslash 20CSCI UNIX and Network Programming

Repetition Operator: \{…\} The repetition operator specifies that the atom or expression immediately before the repetition may be repeated 21CSCI UNIX and Network Programming

Basic Repetition Forms 22CSCI UNIX and Network Programming

Short Form Repetition Operators 23CSCI UNIX and Network Programming

Group Operator: ( ) or \( \) when a sequence of atoms is enclosed in parentheses, the next operator applies to the whole group, not only the previous characters groups define numbered buffers, can be recalled via back reference: \1, \2, \3,... 24CSCI UNIX and Network Programming

Summary: Regular Expressions 25. Any one character, except new line [a-z] Any one of the enclosed characters (e.g. a-z) * Zero or more of preceding character ? also: \? Zero or one of the preceding characters + also: \+ One or more of the preceding characters ^ or $ Beginning or end of line \ Beginning or end of word ( ) also: \( \) Groups matched characters to be used later (max = 9) | also: \| Alternate x\{m,n\} Repetition of character x between m and m times CSCI UNIX and Network Programming

Quoting & Escaping allows to distinguish between the literal value of a symbol and the symbols used as meta-characters done via the following symbols: Backslash (\) Single quote (‘) Double quote (“) 26CSCI UNIX and Network Programming

Backslash (\) also called the escape character preserve the character immediately following it For example: to create a file named “tools>”, enter: % touch tools\> 27CSCI UNIX and Network Programming

Single Quote (') protects the literal meaning of meta-characters protects all characters within the single quotes exception: it cannot protect itself Examples: % echo 'Joe said "Have fun Joe said "Have fun % echo 'Joe said 'Have fun'' Joe said Have fun 28CSCI UNIX and Network Programming

Double Quote (") protects all symbols and characters within the double quotes, expect for: $ (dollar sign) ! (event number) ` (back quote) \ (backslash) Examples: % echo "I've gone fishing" I've gone fishing % echo "your home directory is $HOME" your home directory is /home/student 29CSCI UNIX and Network Programming

Quoting Examples: % echo "Hello Ray []^?+*{}<>" Hello Ray []^?+*{}<> % echo "Hello $USER" Hello student % echo "It is now `date`" It is now Mon Feb 25 10:24:08 CST 2012 % echo "you owe me \$500" you owe me $500 30CSCI UNIX and Network Programming

Summary wildcards regular expressions grep quoting 31CSCI UNIX and Network Programming