Difference between revisions of "Linux/C3/The-grep-command/English-timed"
From Script | Spoken-Tutorial
(Created page with ' {|border=1 |'''Time''' |'''Narration''' |- |00:01 |Welcome to the spoken tutorial on '''grep''' command |- |00:05 |In this tutorial we will learn '''grep command'''. |- |00…') |
|||
(17 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
− | |||
{|border=1 | {|border=1 | ||
|'''Time''' | |'''Time''' | ||
Line 6: | Line 5: | ||
|- | |- | ||
|00:01 | |00:01 | ||
− | |Welcome to the spoken tutorial on '''grep''' command | + | |Welcome to the spoken tutorial on '''grep''' command. |
|- | |- | ||
Line 22: | Line 21: | ||
|- | |- | ||
|00:15 | |00:15 | ||
− | | | + | |'''Ubuntu Linux''' 12.04''' Operating System''' |
|- | |- | ||
|00:20 | |00:20 | ||
− | | and | + | | and '''GNU BASH''' version 4.2.24. |
|- | |- | ||
Line 34: | Line 33: | ||
|- | |- | ||
|00:32 | |00:32 | ||
− | |As prerequisites | + | |As prerequisites you should know basics of '''Linux terminal'''. |
− | + | ||
|- | |- | ||
Line 43: | Line 41: | ||
|- | |- | ||
|00:41 | |00:41 | ||
− | |First let us know about regular expressions. | + | |First let us know about '''regular expressions'''. |
|- | |- | ||
|00:45 | |00:45 | ||
− | | | + | | Regular expressions are pattern matching techniques |
|- | |- | ||
|00:50 | |00:50 | ||
− | | | + | | when we have to find out whether a pattern exist in a line, paragraph or a file. |
|- | |- | ||
Line 59: | Line 57: | ||
|- | |- | ||
| 01:02 | | 01:02 | ||
− | | | + | | or to find a keyword in a paragraph or a line, we use '''grep command'''.Let us move on to '''grep'''. |
− | Let us move on to '''grep'''. | + | |
|- | |- | ||
|01:11 | |01:11 | ||
− | |'''grep''' searches for one or more patterns in one or more | + | |'''grep''' searches for one or more patterns in one or more lines, paragraphs or a file. |
|- | |- | ||
|01:17 | |01:17 | ||
− | |If | + | |If file name is not mentioned, '''grep''' searches for the patterns in the standard input. |
− | + | ||
|- | |- | ||
|01:23 | |01:23 | ||
− | |If | + | |If file name is missing, '''grep''' searches for the patterns in the standard input. |
|- | |- | ||
|01:30 | |01:30 | ||
− | |I will demonstrate usage of '''grep''' using a demo file called '''grepdemo.txt''' | + | |I will demonstrate usage of '''grep''' using a demo file called '''grepdemo.txt'''. |
|- | |- | ||
Line 89: | Line 85: | ||
|- | |- | ||
|01:44 | |01:44 | ||
− | |Each entry has 6 fields roll number, name, stream, marks, and stipend amount. | + | |Each entry has 6 fields: roll number, name, stream, marks, and stipend amount. |
|- | |- | ||
Line 98: | Line 94: | ||
|01:56 | |01:56 | ||
|Let us see how '''grep''' works. | |Let us see how '''grep''' works. | ||
− | |||
|- | |- | ||
|02:00 | |02:00 | ||
|Say we want to use '''grep command''', to see who are the students in the '''computers''' stream. | |Say we want to use '''grep command''', to see who are the students in the '''computers''' stream. | ||
− | |||
|- | |- | ||
Line 111: | Line 105: | ||
|- | |- | ||
|02:10 | |02:10 | ||
− | |So press ''' | + | |So press '''Ctrl + Alt''' and '''T''' keys simultaneously on your keyboard. |
|- | |- | ||
|02:16 | |02:16 | ||
|Now type on the '''terminal''': | |Now type on the '''terminal''': | ||
− | |||
|- | |- | ||
|02:18 | |02:18 | ||
− | |'''grep space (within double quotes) computers after the double quotes space grepdemo .txt''' | + | |'''grep space''' (within double quotes) '''computers''' after the double quotes '''space grepdemo .txt''' |
|- | |- | ||
|02:27 | |02:27 | ||
− | |Press Enter | + | |Press Enter.This would enlist those entries where stream is '''computers'''. |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
|- | |- | ||
Line 144: | Line 133: | ||
|- | |- | ||
|02:45 | |02:45 | ||
− | |Why this is so? | + | |Why this is so? This is because '''grep''' searched for the pattern “computers” with small '''c'''. |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
|- | |- | ||
|02:52 | |02:52 | ||
|While for '''Zubin''', the stream is “Computers” with a capital '''C'''. | |While for '''Zubin''', the stream is “Computers” with a capital '''C'''. | ||
− | |||
− | |||
|- | |- | ||
Line 164: | Line 145: | ||
|- | |- | ||
|03:00 | |03:00 | ||
− | |To make it '''case''' | + | |To make it '''case insensitive''', we need to use the '''minus i ''' (-i) option with '''grep'''. |
|- | |- | ||
|03:06 | |03:06 | ||
− | | | + | |Come back to our terminal, now type:'''grep space (minus) i space''' (within double quotes) '''“computers”''' after the double quotes '''space grepdemo.txt''' |
− | '''grep space (minus) i | + | |
|- | |- | ||
|03:20 | |03:20 | ||
− | |Press ''' Enter | + | |Press '''Enter'''. This will now enlist all the four entries. |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
|- | |- | ||
Line 201: | Line 177: | ||
|- | |- | ||
|03:48 | |03:48 | ||
− | |We can also store this result in another file | + | |We can also store this result in another file. |
− | + | ||
|- | |- | ||
|03:52 | |03:52 | ||
− | |For this type: | + | |For this type: '''grep space minus iv space''' within double quotes '''pass''' after the double quotes '''space grepdemo.txt space greater than sign space notpass.txt ''' |
− | '''grep space minus iv space''' | + | |
|- | |- | ||
|04:11 | |04:11 | ||
− | |Press '''Enter.''' | + | |Press '''Enter.''' To see the content of file, type: '''cat space notpass.txt ''' |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | '''cat space notpass.txt ''' | + | |
|- | |- | ||
|04:20 | |04:20 | ||
− | |Press '''Enter'''. | + | |Press '''Enter'''.The output is displayed. |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
|- | |- | ||
Line 236: | Line 201: | ||
|- | |- | ||
|04:37 | |04:37 | ||
− | |And Press '''Enter.''' | + | |And Press '''Enter.'''This is different. |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | |||
|- | |- | ||
|04:41 | |04:41 | ||
|This will include those students who are failed but their result is incomplete. | |This will include those students who are failed but their result is incomplete. | ||
− | |||
|- | |- | ||
|04:46 | |04:46 | ||
|If we want to see the line number in the file at which the enlisted entries are, we have the '''minus n''' option | |If we want to see the line number in the file at which the enlisted entries are, we have the '''minus n''' option | ||
− | |||
|- | |- | ||
|04:54 | |04:54 | ||
− | |Let us clear the | + | |Let us clear the prompt. |
|- | |- | ||
|04:58 | |04:58 | ||
− | | Now type | + | | Now type '''grep space -in space''' within double quote "fail" after the double quotes '''space grepdemo.txt'''. |
|- | |- | ||
Line 275: | Line 233: | ||
|- | |- | ||
|05:18 | |05:18 | ||
− | |We may have | + | |We may have multi-word patterns as well. |
|- | |- | ||
|05:21 | |05:21 | ||
− | |But the entire pattern must be within | + | |But the entire pattern must be within quotes. |
|- | |- | ||
|05:24 | |05:24 | ||
− | |So type: '''grep space minus i space'''within double quotes '''ankit space saraf after the double quotes space grepdemo.txt ''' | + | |So, type: '''grep space minus i space'''within double quotes '''ankit space saraf''' after the double quotes '''space grepdemo.txt ''' |
|- | |- | ||
Line 296: | Line 254: | ||
|05:44 | |05:44 | ||
|We can also find patterns in multiple files. | |We can also find patterns in multiple files. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
|05:48 | |05:48 | ||
− | |For this | + | |For this, type: '''grep space minus i space''' within double quotes '''fail''' after double quotes space '''grepdemo.txt space notpass.txt''' |
− | '''grep space minus i space''' within double quotes '''fail after double quotes space grepdemo.txt space notpass.txt''' | + | |
− | + | ||
|- | |- | ||
|06:03 | |06:03 | ||
− | |'''Press Enter'''. | + | |'''Press Enter'''. The output is displayed. |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
|- | |- | ||
|06:07 | |06:07 | ||
− | |With multiple files, '''grep''' will write the name of the file in which the entry was found.'''grepdemo.txt''' and '''notpass.txt''' | + | |With multiple files, '''grep''' will write the name of the file in which the entry was found. '''grepdemo.txt''' and '''notpass.txt'''. |
|- | |- | ||
Line 327: | Line 273: | ||
|- | |- | ||
|06:26 | |06:26 | ||
− | |Suppose we may only want to know the '''number of matches '''or '''count''' . | + | |Suppose, we may only want to know the '''number of matches '''or '''count'''. |
|- | |- | ||
|06:31 | |06:31 | ||
− | |For that, we have the '''minus c''' option | + | |For that, we have the '''minus c''' option. |
− | + | ||
|- | |- | ||
|06:35 | |06:35 | ||
− | | So | + | | So, type: '''grep space minus c space'''within double quotes '''Fail''' with a capital F after the quotes '''space grepdemo.txt''' |
|- | |- | ||
Line 349: | Line 294: | ||
|06:55 | |06:55 | ||
|This brings us to the end of this tutorial. | |This brings us to the end of this tutorial. | ||
− | |||
|- | |- | ||
Line 357: | Line 301: | ||
|- | |- | ||
| 07:01 | | 07:01 | ||
− | | In this tutorial we learnt | + | | In this tutorial we learnt: |
|- | |- | ||
|07:03 | |07:03 | ||
− | | | + | |To see the contents of a file eg. '''cat filename''' |
− | + | ||
|- | |- | ||
|07:07 | |07:07 | ||
− | | | + | | To list the entries of a particular stream eg. '''grep “computers” grepdemo.txt''' |
− | + | ||
|- | |- | ||
|07:14 | |07:14 | ||
− | | | + | |To ignore cases eg. '''grep -i “computers” grepdemo.txt''' |
− | + | ||
|- | |- | ||
|07:21 | |07:21 | ||
− | | | + | | Lines that do not match the pattern eg. '''grep -iv “pass” grepdemo.txt''' |
− | + | ||
|- | |- | ||
|07:30 | |07:30 | ||
− | | | + | |To list the line numbers with the entries eg.''' grep -in “fail” grepdemo.txt''' |
− | + | ||
|- | |- | ||
|07:38 | |07:38 | ||
− | | | + | |To store the result in another file eg. '''grep -iv “pass” grepdemo.txt > notpass.txt''' |
− | + | ||
|- | |- | ||
|07:50 | |07:50 | ||
− | |And | + | |And To know the count eg.''' grep -c “Fail” grepdemo.txt'''. |
− | + | ||
|- | |- | ||
|07:57 | |07:57 | ||
− | |As an assignment, | + | |As an assignment,Explore some other commands like '''-E, + and ?'''. |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
|- | |- | ||
Line 408: | Line 341: | ||
|- | |- | ||
|08:06 | |08:06 | ||
− | |It | + | |It summarizes the Spoken Tutorial project. |
|- | |- | ||
Line 416: | Line 349: | ||
|- | |- | ||
|08:14 | |08:14 | ||
− | |The Spoken Tutorial Project Team | + | |The Spoken Tutorial Project Team: |
|- | |- | ||
|08:16 | |08:16 | ||
− | | | + | |Conducts workshops using spoken tutorials |
|- | |- | ||
|08:19 | |08:19 | ||
− | | | + | |Gives certificates to those who pass an online test. |
|- | |- | ||
|08:23 | |08:23 | ||
− | |For more details, please write to | + | |For more details, please write to'''contact@spoken-tutorial.org''' |
− | '''contact@spoken-tutorial.org''' | + | |
|- | |- | ||
|08:30 | |08:30 | ||
− | |Spoken Tutorial Project is a part of the Talk to a Teacher project | + | |Spoken Tutorial Project is a part of the Talk to a Teacher project. |
|- | |- | ||
|08:33 | |08:33 | ||
− | |It is supported by the National Mission on Education through ICT, MHRD, Government of India | + | |It is supported by the National Mission on Education through ICT, MHRD, Government of India. |
|- | |- | ||
|08:40 | |08:40 | ||
− | |More information on this Mission is available at: http://spoken-tutorial.org\NMEICT-Intro | + | |More information on this Mission is available at: http://spoken-tutorial.org\NMEICT-Intro. |
|- | |- | ||
|08:45 | |08:45 | ||
− | |This is Ashwini Patil from IIT Bombay | + | |This is Ashwini Patil from IIT Bombay, signing off. Thank you for joining. |
− | + | |- | |
|} | |} |
Latest revision as of 11:04, 17 October 2017
Time | Narration |
00:01 | Welcome to the spoken tutorial on grep command. |
00:05 | In this tutorial we will learn grep command. |
00:09 | We will do this with the help of some examples. |
00:11 | To record this tutorial, I am using |
00:15 | Ubuntu Linux 12.04 Operating System |
00:20 | and GNU BASH version 4.2.24. |
00:24 | Please note, GNU bash version 4 or above is recommended to practice this tutorial. |
00:32 | As prerequisites you should know basics of Linux terminal. |
00:36 | For relevant tutorials, please visit our website which is as shown. |
00:41 | First let us know about regular expressions. |
00:45 | Regular expressions are pattern matching techniques |
00:50 | when we have to find out whether a pattern exist in a line, paragraph or a file. |
00:56 | For ex. If you want to search a phone number in the telephone directory |
01:02 | or to find a keyword in a paragraph or a line, we use grep command.Let us move on to grep. |
01:11 | grep searches for one or more patterns in one or more lines, paragraphs or a file. |
01:17 | If file name is not mentioned, grep searches for the patterns in the standard input. |
01:23 | If file name is missing, grep searches for the patterns in the standard input. |
01:30 | I will demonstrate usage of grep using a demo file called grepdemo.txt. |
01:37 | Let us see the content of the file. |
01:40 | This is a file that has 13 entries. |
01:44 | Each entry has 6 fields: roll number, name, stream, marks, and stipend amount. |
01:52 | The fields are separated by a bar, which is called a delimiter. |
01:56 | Let us see how grep works. |
02:00 | Say we want to use grep command, to see who are the students in the computers stream. |
02:07 | For this we have to open the terminal. |
02:10 | So press Ctrl + Alt and T keys simultaneously on your keyboard. |
02:16 | Now type on the terminal: |
02:18 | grep space (within double quotes) computers after the double quotes space grepdemo .txt |
02:27 | Press Enter.This would enlist those entries where stream is computers. |
02:33 | Now compare the result with the original file. |
02:37 | Come back to our text editor. |
02:40 | We see that the entry for Zubin is not enlisted. |
02:45 | Why this is so? This is because grep searched for the pattern “computers” with small c. |
02:52 | While for Zubin, the stream is “Computers” with a capital C. |
02:57 | The pattern matching is case sensitive. |
03:00 | To make it case insensitive, we need to use the minus i (-i) option with grep. |
03:06 | Come back to our terminal, now type:grep space (minus) i space (within double quotes) “computers” after the double quotes space grepdemo.txt |
03:20 | Press Enter. This will now enlist all the four entries. |
03:25 | So we saw, grep enlists only those lines of files that match a given pattern. |
03:32 | We may do the reverse. |
03:34 | It is possible to make grep enlist only those lines that do not match the pattern. |
03:40 | For that we have the minus v option. |
03:43 | Say, we want to enlist those entries of students who have not passed. |
03:48 | We can also store this result in another file. |
03:52 | For this type: grep space minus iv space within double quotes pass after the double quotes space grepdemo.txt space greater than sign space notpass.txt |
04:11 | Press Enter. To see the content of file, type: cat space notpass.txt |
04:20 | Press Enter.The output is displayed. |
04:24 | Now at the prompt type: |
04:26 | grep space minus i space' within double quotes fail after the double quotes space grepdemo.txt |
04:37 | And Press Enter.This is different. |
04:41 | This will include those students who are failed but their result is incomplete. |
04:46 | If we want to see the line number in the file at which the enlisted entries are, we have the minus n option |
04:54 | Let us clear the prompt. |
04:58 | Now type grep space -in space within double quote "fail" after the double quotes space grepdemo.txt. |
05:09 | Press Enter. |
05:11 | The line number is displayed. |
05:15 | The patterns so far have been of single word. |
05:18 | We may have multi-word patterns as well. |
05:21 | But the entire pattern must be within quotes. |
05:24 | So, type: grep space minus i spacewithin double quotes ankit space saraf after the double quotes space grepdemo.txt |
05:38 | Press Enter. |
05:40 | We see that Ankit Saraf's record is displayed. |
05:44 | We can also find patterns in multiple files. |
05:48 | For this, type: grep space minus i space within double quotes fail after double quotes space grepdemo.txt space notpass.txt |
06:03 | Press Enter. The output is displayed. |
06:07 | With multiple files, grep will write the name of the file in which the entry was found. grepdemo.txt and notpass.txt. |
06:18 | These are the records from notpass.txt file and these are the records from grepdemo.txt file. |
06:26 | Suppose, we may only want to know the number of matches or count. |
06:31 | For that, we have the minus c option. |
06:35 | So, type: grep space minus c spacewithin double quotes Fail with a capital F after the quotes space grepdemo.txt |
06:48 | Press Enter. |
06:50 | This will give us the count of number of lines matched. |
06:55 | This brings us to the end of this tutorial. |
06:59 | Let us summarize. |
07:01 | In this tutorial we learnt: |
07:03 | To see the contents of a file eg. cat filename |
07:07 | To list the entries of a particular stream eg. grep “computers” grepdemo.txt |
07:14 | To ignore cases eg. grep -i “computers” grepdemo.txt |
07:21 | Lines that do not match the pattern eg. grep -iv “pass” grepdemo.txt |
07:30 | To list the line numbers with the entries eg. grep -in “fail” grepdemo.txt |
07:38 | To store the result in another file eg. grep -iv “pass” grepdemo.txt > notpass.txt |
07:50 | And To know the count eg. grep -c “Fail” grepdemo.txt. |
07:57 | As an assignment,Explore some other commands like -E, + and ?. |
08:04 | Watch the video available at the link shown below. |
08:06 | It summarizes the Spoken Tutorial project. |
08:10 | If you do not have good bandwidth, you can download and watch it. |
08:14 | The Spoken Tutorial Project Team: |
08:16 | Conducts workshops using spoken tutorials |
08:19 | Gives certificates to those who pass an online test. |
08:23 | For more details, please write tocontact@spoken-tutorial.org |
08:30 | Spoken Tutorial Project is a part of the Talk to a Teacher project. |
08:33 | It is supported by the National Mission on Education through ICT, MHRD, Government of India. |
08:40 | More information on this Mission is available at: http://spoken-tutorial.org\NMEICT-Intro. |
08:45 | This is Ashwini Patil from IIT Bombay, signing off. Thank you for joining. |