Linux-AWK/C2/Basics-of-awk/English-timed
From Script | Spoken-Tutorial
Revision as of 14:54, 23 July 2014 by Pratik kamble (Talk | contribs)
Time | Narration |
00:01 | Welcome to the spoken tutorial on the awk command.
|
00:05 | In this tutorial we will learn, awk command. |
00:09 | We will do this through some examples. |
00:12 | To record this tutorial, I am using
|
00:23 | Please note, GNU Bash version 4 or above is recommended to practice this tutorial. |
00:29 | Let us start with an introduction to awk. |
00:33 | The awk command is a very powerful text manipulation tool. |
00:38 | It is named after its authors, Aho, Weinberger and Kernighan. |
00:44 | It can perform several functions. |
00:46 | It operates at the field level of a record.
|
00:51 | So, it can easily access and edit the individual fields of the record. |
00:56 | Let us see some examples. |
00:59 | For demonstration purpose, we use the awkdemo.txt file. |
01:04 | Let us see the contents of awkdemo.txt file. |
01:09 | Now open the terminal by pressing
CTRL + ALT and T keys simultaneosuly on your keyboard. |
01:17 | Let us see how to print using awk command. |
01:22 | Type:
awk space (within single quote) (front slash) ‘/Pass (front slash)/(opening curly bracket) {print (closing curly bracket)} (after the quotes) space awkdemo.txt |
01:38 | Press Enter |
01:40 | Here Pass is the selection criterion. |
01:44 | All the lines of the awkdemo where Pass occurs are printed. |
01:49 | The action here is print. |
01:52 | We can also use regular expressions in awk
|
01:56 | Say we want to print records of students with name Mira. |
02:01 | We would type:
awk space '/M opening square bracket [ ei closing square bracket ]*ra */{ print}' space awkdemo.txt |
02:27 | Press Enter. |
02:29 | "*" will give one or more occurrences of previous character. |
02:33 | Thus entries with more than one occurrence for i, e and a will be listed. |
02:40 | For example |
02:42 | *Mira |
02:45 | *Meera |
02:47 | *Meeraa |
02:52 | awk supports the extended regular expressions (ERE). |
02:58 | Which means we can match multiple patterns separated by a PIPE. |
03:03 | Let me clear the promt |
03:05 | Now type: |
03:10 | electrical (front slash)/{print}' awkdemo.txt |
03:23 | Press Enter. |
03:26 | Now entries for both civil and electrical are given. |
03:31 | Let us go back to our slides. |
03:34 | Parameters awk has some special parameters to identify individual fields of a line. |
03:41 | $1(Dollar 1) would indicate the first field. |
03:45 | Similarly we can have $2, $3 and so on for respective fields. |
03:53 | $0 represents the entire line. |
03:56 | come back to our terminal |
03:59 | Note that each word is separated by PIPE in the file awkdemo.txt.
|
04:05 | In this case PIPE is called a delimiter. |
04:09 | A delimiter separates words from each other. |
04:13 | A delimiter can also be a single whitespace. |
04:16 | To specify a delimiter, we have to give - capital F flag followed by a delimiter. |
04:24 | Let us see |
04:25 | Type awk space minus capital F space within double quotes PIPE space within single quote front slash civil PIPE electrical front slash within curly braces print space dollar0 space awkdemo.txt |
04:51 | Press Enter |
04:53 | This print the entire line since we have used $0. |
04:58 | Notice that, names and stream of students are the second and third fields. |
05:04 | Say we only want to print two fields. |
05:08 | We will replace $0 with $2 and$3 in the above command.
|
05:15 | Press Enter |
05:18 | Only two fields are shown. |
05:21 | Though it gives the right result, the display is all jagged and unformatted. |
05:26 | We can provide formatted output by using the C style printf statement. |
05:32 | We can also provide a serial number by using a builtin variable NR. |
05:40 | We will see more about builtin variables later. |
05:44 | Now Type
awk space -F”|” space '/Pass/{printf “%4d %-25s %-15s \n”, NR,$2,$3 }' space awkdemo.txt |
06:33 | Press Enter. |
06:34 | We see the difference.
|
06:37 | Here the NR stands for number of records. |
06:41 | Records are integers, hence we have written %d. |
06:45 | Name and Stream are strings. So we have used %s. |
06:50 | Here 25s will reserve 25 spaces for Name field. |
06:55 | 15s will reserve 15 spaces for Stream field. |
07:01 | The minus sign is used to left justify the output. |
07:05 | This brings us to the end of this tutorial. |
07:08 | Let us move back to our slides. |
07:10 | Let us summarize. |
07:11 | In this tutorial we learnt
To print using awk |
07:16 | Regular expression in awk
To list the enteries for a paritcular stream |
07:21 | To list only the second and the third fileds |
07:24 | To display a formatted output |
07:28 | As an assignment |
07:29 | Display roll no., stream and marks of Ankti Saraf |
07:34 | Watch the video available at the link shown below |
07:37 | It summarises the Spoken Tutorial project |
07:40 | If you do not have good bandwidth, you can download and watch it |
07:45 | The Spoken Tutorial Project Team Conducts workshops using spoken tutorials |
07:48 | Gives certificates to those who pass an online test |
07:52 | For more details, please write to contact@spoken-tutorial.org |
07:58 | Spoken Tutorial Project is a part of the Talk to a Teacher project |
08:01 | It is supported by the National Mission on Education through ICT, MHRD, Government of India
|
08:07 | More information on this Mission is available at: [1] |
08:12 | This is Ashwini Patil from IIT Bombay signning off. Thank you for joining.
|
Contributors and Content Editors
Nancyvarkey, PoojaMoolya, Pratik kamble, Ranjana, Sandhya.np14