Difference between revisions of "Tutorial11: Sed & Awk Utilities"

From CDOT Wiki
Jump to: navigation, search
(Using the sed Utility)
(Using the sed Utility)
Line 53: Line 53:
  
  
Address:
+
'''Address:'''
  
 
*can use a line number, to select a specific line (for example: 5)  
 
*can use a line number, to select a specific line (for example: 5)  
Line 60: Line 60:
 
*Note: when using regular expressions, you must delimit them with a forward-slash"/" default address (if none is specified) will match every line
 
*Note: when using regular expressions, you must delimit them with a forward-slash"/" default address (if none is specified) will match every line
  
Instruction:
+
'''Instruction:'''
 
*Action to take for matched line(s)
 
*Action to take for matched line(s)
 
*Refer to table on right-side for list of some common instructions and their purpose
 
*Refer to table on right-side for list of some common instructions and their purpose

Revision as of 06:06, 21 July 2020

USING SED & AWK UTILTIES


Main Objectives of this Practice Tutorial

  • Learn how to issue the sed command to manipulate text contained in a file.
  • List and understand several instructions associated with the sed command.
  • Use the sed command as a filter to manipulate text
  • Learn how to issue the awk command to manipulate text contained in a file.
  • Use the awk command as a filter to manipulate text



Tutorial Reference Material

Course Notes
Linux Command/Shortcut Reference
YouTube Videos
Course Notes:


Text Manipulation Man Pages


Brauer Instructional Videos:

KEY CONCEPTS

Using the sed Utility

Sed Utility Usage:


Syntax: sed [-n] 'address instruction' filename


Address:

  • can use a line number, to select a specific line (for example: 5)
  • can specify a range of line numbers (for example: 5,7)
  • can specify a regular expression to select all lines that match (e.g /^happy[0-9]/)
  • Note: when using regular expressions, you must delimit them with a forward-slash"/" default address (if none is specified) will match every line

Instruction:

  • Action to take for matched line(s)
  • Refer to table on right-side for list of some common instructions and their purpose

Using the awk Utility

x

INVESTIGATION 1: USING THE SED UTILITY


In this section, you will learn how to ...



Perform the Following Steps:

  1. x

In the next investigation, you will ...

INVESTIGATION 2: USING THE AWK UTILITY

In this section, you will learn how to ...


Perform the Following Steps:

  1. x

In the next investigation, you will ...

INVESTIGATION 3: USING SED & AWK UTILITIES AS FILTERS

In this section, you will learn how to ...


Perform the Following Steps:

  1. x

LINUX PRACTICE QUESTIONS

The purpose of this section is to obtain extra practice to help with quizzes, your midterm, and your final exam.

Here is a link to the MS Word Document of ALL of the questions displayed below but with extra room to answer on the document to simulate a quiz:

https://ict.senecacollege.ca/~murray.saul/uli101/uli101_week11_practice.docx

Your instructor may take-up these questions during class. It is up to the student to attend classes in order to obtain the answers to the following questions. Your instructor will NOT provide these answers in any other form (eg. e-mail, etc).


Review Questions:

Part A: Display Results from Using the sed Utility

Note the contents from the following tab-delimited file called ~murray.saul/uli101/stuff.txt: (this file pathname exists for checking your work)

Line one.
This is the second line.
This is the third.
This is line four.
Five.
Line six follows
Followed by 7
Now line 8
and line nine
Finally, line 10


Write the results of each of the following Linux commands for the above-mentioned file:


  1. sed -n '3,6 p' ~murray.saul/uli101/stuff.txt

  2. sed '4 q' ~murray.saul/uli101/stuff.txt

  3. sed '/the/ d' ~murray.saul/uli101/stuff.txt

  4. sed 's/line/NUMBER/g' ~murray.saul/uli101/stuff.txt


Part B: Writing Linux Commands Using the sed Utility

Write a single Linux command to perform the specified tasks for each of the following questions.


  1. Write a Linux sed command to display only lines 5 to 9 for the file: ~murray.saul/uli101/stuff.txt

  2. Write a Linux sed command to display only lines the begin the pattern “and” for the file: ~murray.saul/uli101/stuff.txt

  3. Write a Linux sed command to display only lines that end with a digit for the file: ~murray.saul/uli101/stuff.txt

  4. Write a Linux sed command to save lines that match the pattern “line” (upper or lowercase) for the file: ~murray.saul/uli101/stuff.txt and save results (overwriting previous contents) to: ~/results.txt


Part C: Writing Linux Commands Using the awk Utility

Note the contents from the following tab-delimited file called ~murray.saul/uli101/stuff.txt: (this file pathname exists for checking your work)

Line one.
This is the second line.
This is the third.
This is line four.
Five.
Line six follows
Followed by 7
Now line 8
and line nine
Finally, line 10


Write the results of each of the following Linux commands for the above-mentioned file:


  1. awk ‘NR == 3 {print}’ ~murray.saul/uli101/stuff.txt

  2. awk ‘NR >= 2 && NR <= 5 {print}’ ~murray.saul/uli101/stuff.txt

  3. awk ‘$1 ~ /This/ {print $2}’ ~murray.saul/uli101/stuff.txt

  4. awk ‘$1 ~ /This/ {print $3,$2}’ ~murray.saul/uli101/stuff.txt


Part D: Writing Linux Commands Using the awk Utility


Write a single Linux command to perform the specified tasks for each of the following questions.


  1. Write a Linux awk command to display all records for the file: ~/cars whose fifth field is greater than 10000.

  2. Write a Linux awk command to display the first and fourth fields for the file: ~/cars whose fifth field begins with a number.

  3. Write a Linux awk command to display the second and third fields for the file: ~/cars for records that match the pattern “chevy”.

  4. Write a Linux awk command to display the first and second fields for all the records contained in the file: ~/cars