Part 3. Grepping
The grep command is used for searching for text files for a “pattern” and
printing out each line that matches the pattern. For example, $ grep vampire 'Stoker, Bram - Dracula.txt' prints out each line containing the word
vampire (in lower case). Try it out!
Read grep’s man page to figure out how to perform a case-insensitive search
and run the command to print out all lines matching vampire, case
insensitively. Hint: typing /case (and then hit enter) while viewing a man
page will search for case in the manual. While searching, you can press
n/N to go to the next/previous instance.
Your task
Using a text editor, create the file task3.txt in the lab1 directory.
Use grep to print out a count of the lines matching vampire case
insensitively. (Search the man page again.) Write the command you used and
its output in task3.txt
Open the man page for grep one final time and figure out how to get grep
to print the line numbers (and the lines themselves) that match Transylvania
and then do that. Write the command you used and its output in task3.txt.
Find and use the command to print out a count of every word in both books. Use
the apropos command to search manual pages for keywords. The -a (or
--and) option to apropos lets you search for commands that involve all of
the key words so $ apropos -a apple sauce will match commands whose
descriptions contain both the words apple and sauce. So use apropos -a with
appropriate keywords to find a command that produces a word count.
Run that command on all .txt files in the books directory using
$ cmd books/*.txt
where cmd is the command you found with apropos.
The * is called a glob and Bash replaces it with all files that match. In
this case, books/*.txt will be replaced with paths to files in the books
directory that end with .txt. Globs are powerful and make working with
multiple files with similar names easy.
Put the command you ran and its output in task3.txt.
Finally, read the man page for the command to count words in files and find
the option to only print line counts. Use the command on both files. Put the
command and the output in task3.txt.