summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJovina2012-08-08 14:52:54 +0530
committerJovina2012-08-08 14:52:54 +0530
commitd0c0139c362aa0d04073fbb901ee81b3c47bf158 (patch)
treedc8f3253a09f980f9a87508db446bb8c724c10ff
parent55c87f72e138006d614ab814becf6f5b36a4699b (diff)
downloadsdes-stscripts-d0c0139c362aa0d04073fbb901ee81b3c47bf158.tar.gz
sdes-stscripts-d0c0139c362aa0d04073fbb901ee81b3c47bf158.tar.bz2
sdes-stscripts-d0c0139c362aa0d04073fbb901ee81b3c47bf158.zip
Added ULT part 7.
-rw-r--r--ult/ult_7/foo.txt9
-rw-r--r--ult/ult_7/marks1.txt5
-rw-r--r--ult/ult_7/script.rst393
-rw-r--r--ult/ult_7/script2col.rst210
-rw-r--r--ult/ult_7/students.txt5
-rw-r--r--ult/ult_7/ult7.tex249
6 files changed, 871 insertions, 0 deletions
diff --git a/ult/ult_7/foo.txt b/ult/ult_7/foo.txt
new file mode 100644
index 0000000..1fe9426
--- /dev/null
+++ b/ult/ult_7/foo.txt
@@ -0,0 +1,9 @@
+FOO is an abbreviation of Forward Observation Officer, a British Army
+term in use as early as the First World War. The etymology of foo is
+explored in the Internet Engineering Task Force (IETF) Request for
+Comments 3092, which notes usage of foo in 1930s cartoons including
+The Daffy Doc (with Daffy Duck) and comic strips, especially Smokey
+Stover and Pogo. From there the term migrated into military slang,
+where it merged with FUBAR.
+
+source: wikipedia
diff --git a/ult/ult_7/marks1.txt b/ult/ult_7/marks1.txt
new file mode 100644
index 0000000..9a5299d
--- /dev/null
+++ b/ult/ult_7/marks1.txt
@@ -0,0 +1,5 @@
+5 89 92 85
+4 98 47 67
+1 67 82 76
+2 78 97 60
+3 67 68 69
diff --git a/ult/ult_7/script.rst b/ult/ult_7/script.rst
new file mode 100644
index 0000000..b4cb55c
--- /dev/null
+++ b/ult/ult_7/script.rst
@@ -0,0 +1,393 @@
+.. Objectives
+.. ----------
+
+ .. At the end of this tutorial, you will be able to:
+
+ .. 1. Sort lines of text files
+ .. 2. Print lines matching a pattern
+ .. 3. Translate or delete characters
+ .. 4. Omit repeated lines
+
+
+.. Prerequisites
+.. -------------
+
+.. 1. Getting started with Linux
+.. 2. Redirection and Piping
+
+
+
+Script
+------
+
+.. L1
+
+{{{ Show the first slide containing title, name of the production
+team along with the logo of MHRD }}}
+
+.. R1
+
+Hello friends and Welcome to the tutorial on 'Text Processing'.
+
+.. L2
+
+{{{ Show slide with objectives }}}
+
+.. R2
+
+At the end of this tutorial, you will be able to,
+
+ 1. Sort lines of text files
+ #. Print lines matching a pattern
+ #. Translate or delete characters
+ #. Omit repeated lines.
+
+
+.. L3
+
+{{{ Switch to the pre-requisite slide }}}
+
+.. R3
+
+Before beginning this tutorial,we would suggest you to complete the
+former tutorials as being displayed currently.
+
+.. R4
+
+In this tutorial, we shall learn about text processing.
+TO begin with, consider data kept in two files, namely marks1.txt and
+students.txt
+Let us see what data they contain. Open a terminal and type,
+
+.. L4
+
+{{{ Open the terminal }}}
+::
+
+ cat marks1.txt
+ cat students.txt
+
+.. R5
+
+Let's say we wish to sort the output in the alphabetical order
+of the names of the files. We can use the ``sort`` command for this
+purpose.
+
+We just pipe the previous output to the ``sort`` command as,
+
+.. L5
+::
+
+ cut -d " " -f 2- marks1.txt | paste -d " " students.txt -| sort
+
+.. R6
+
+Let's say we wish to sort the names, based on the marks in the first
+subject i.e. the first column after the name. ``sort`` command also allows us to
+specify the delimiter between the fields and sort the data on a particular
+field. ``-t`` option is used to specify the delimiter and ``-k`` option
+is used to specify the field.
+
+.. L6
+::
+
+ cut -d " " -f 2- marks1.txt | paste -d " " students.txt -| sort -t " " -k 2
+
+.. L7
+
+{{{ Show slide with, Sort... }}}
+
+.. R7
+
+This command give us a sorted output as required. But, what if we would
+like the output to appear in the reverse order. ``-r`` option allows the output
+to be sorted in the reverse order and the ``-n`` option is used to choose
+a numerical sorting.
+
+.. R8
+
+Let us do it on the terminal and see for ourselves,
+
+.. L8
+
+{{{ Switch to the terminal }}}
+::
+
+ cut -d " " -f 2- marks1.txt | paste -d " " students.txt -|
+ sort -t " " -k 2 -rn
+
+.. R9
+
+Suppose, While you are compiling the student marklist, Anne walks up to you and
+wants to know her marks. You, being a kind person that you are, oblige.
+But you do not wish to her to see the marks that others have scored. What
+do you do? Here, the ``grep`` command comes to your rescue.
+
+``grep`` is a command line text search utility. You can use it to search
+for Anne and show her, what she scored. ``grep`` allows us to search for a
+search string in files. But we could, like any other command, pipe the
+output of other commands to it. So, we shall use the previous combination
+of cut and paste that we had, to get the marks of students along with their
+names and search for Anne in that.
+
+.. L9
+::
+
+ cut -d " " -f 2- marks1.txt | paste -d " " students.txt - | grep Anne
+
+.. R10
+
+This will give us only the line containing the word Anne as the output.
+The grep command is by default case-sensitive. So, we wouldn't have got
+the result if we had searched for anne, with a small a, instead of
+Anne, with a capital a. But, what if we didn't know, whether the name was
+capitalized or not? ``grep`` allows you to do case-insensitive searches
+by using the ``-i`` option.
+
+.. L10
+::
+
+ cut -d " " -f 2- marks1.txt | paste -d " " students.txt - | grep -i Anne
+
+.. R11
+
+Now, in another scenario, if we wished to print all the lines, which do
+not contain the word Anne, we could use the ``-v`` option.
+
+.. L11
+::
+
+ cut -d " " -f 2- marks1.txt | paste -d " " students.txt - | grep -iv Anne
+
+.. R12
+
+grep allows us to do more complex searches, for instance, searching for
+sentences starting or ending with a particular pattern and regular
+expression based searches.
+
+{{{ Show slide with, tr }}}
+
+``tr`` is a command that takes two sets of characters as parameters, and
+replaces occurrences of the characters in the first set with the
+corresponding elements from the other set. It reads from the standard
+output and writes to the standard output.
+
+For instance, if we wish to replace all the lower case letters in the
+students file with upper case, we can do it as,
+
+.. L12
+
+{{{ Switch to the terminal }}}
+::
+
+ cat students.txt | tr a-z A-Z
+
+.. R13
+
+A common task is to remove empty newlines from a file. The ``-s`` flag
+causes ``tr`` to compress sequences of identical adjacent characters in its
+output to a single token. For example,
+
+.. L13
+::
+
+ tr -s '\n' '\n'
+
+.. R14
+
+Hit enter 2-3 times and see that every time we hit enter we get a newline.
+
+.. L14
+::
+
+ <Enter>
+ <Enter>
+
+.. R15
+
+It replaces sequences of one or more newline characters with a single newline.
+
+The ``-d`` flag causes ``tr`` to delete all tokens of the specified set of
+characters from its input. In this case, only a single character set
+argument is used. The following command removes carriage return characters,
+thereby converting a file in DOS/Windows format to the Unix format.
+
+.. L15
+::
+
+ cat foo.txt | tr -d '\r' > bar.txt
+
+.. R16
+
+The ``-c`` flag complements the first set of characters.
+
+.. L16
+::
+
+ tr -cd '[:alnum:]'
+
+.. R17
+
+It therefore removes all non-alphanumeric characters.
+
+Let us consider one more scenario.Suppose we have a list of items, say books,
+and we wish to obtain a list which names of all the books only once, without
+any duplicates. To achieve this, we use the ``uniq`` command. Let us first
+have a look at our file
+
+.. L17
+::
+
+ cat items.txt
+
+.. R18
+
+Now, let us try and get rid of the duplicate lines from this file using
+the ``uniq`` command.
+
+.. L18
+::
+
+ uniq items.txt
+
+.. R19
+
+Nothing happens! Why? The ``uniq`` command removes duplicate lines only when
+they are next to each other. So, henceforth, we get a sorted file from the
+original file and work with that file.
+
+.. L19
+::
+
+ sort items.txt | uniq
+
+.. R20
+
+``uniq -u`` command gives the lines which are unique and do not have any
+duplicates in the file. ``uniq -d`` outputs only those lines which
+have duplicates.
+
+.. L20
+::
+
+ uniq -u items-sorted.txt
+
+.. R21
+
+The ``-c`` option displays the number of times each line occurs in the file.
+
+.. L21
+::
+
+ uniq -dc items-sorted.txt
+
+.. L22
+
+{{{ Show summary slide }}}
+
+.. R22
+
+This brings us to the end of the end of this tutorial.
+In this tutorial, we have learnt to,
+
+ 1. Use the ``sort`` command to sort lines of text files.
+ #. Use the ``grep`` command to search text pattern.
+ #. Use the ``tr`` command to translate and/or delete characters.
+ #. Use the ``uniq`` command to omit repeated lines in a text.
+
+.. L23
+
+{{{ Show self assessment questions slide }}}
+
+.. R23
+
+Here are some self assessment questions for you to solve
+
+1. To obtain patterns; one per line, which of the following command is used ?
+
+ - grep -f
+ - grep -i
+ - grep -v
+ - grep -e
+
+2. Translate the word 'linux' to upper-case.
+
+3. Sort the output of the ``ls -al`` command.
+
+.. L24
+
+{{{ Solution of self assessment questions on slide }}}
+
+.. R24
+
+And the answers,
+
+1. In order to obtain patterns one per line, we use the ``grep`` command
+ alongwith the -f option.
+
+2. We use the tr command to change the word into uppercase
+::
+
+ echo 'linux' | tr a-z A-Z
+
+
+3. We use the sort command as,
+::
+
+ ls -al | sort -n -k5
+The -n means "sort numerically", and the -k5 option means to key off of
+column five.
+
+.. L25
+
+{{{ Show the SDES & FOSSEE slide }}}
+
+.. R25
+
+Software Development techniques for Engineers and Scientists - SDES, is an
+initiative by FOSSEE. For more information, please visit the given link.
+
+Free and Open-source Software for Science and Engineering Education - FOSSEE, is
+based at IIT Bombay which is funded by MHRD as part of National Mission on
+Education through ICT.
+
+.. L26
+
+{{{ Show the ``About the Spoken Tutorial Project'' slide }}}
+
+.. R26
+
+Watch the video available at the following link. It summarises the Spoken
+Tutorial project.If you do not have good bandwidth, you can download and
+watch it.
+
+.. L27
+
+{{{ Show the `` Spoken Tutorial Workshops'' slide }}}
+
+.. R27
+
+The Spoken Tutorial Project Team conducts workshops using spoken tutorials,
+gives certificates to those who pass an online test.
+
+For more details, contact contact@spoken-tutorial.org
+
+.. L28
+
+{{{ Show the ``Acknowledgements'' slide }}}
+
+.. R28
+
+Spoken Tutorial Project is a part of the "Talk to a Teacher" project.
+It is supported by the National Mission on Education through ICT, MHRD,
+Government of India. More information on this mission is available at the
+given link.
+
+.. L29
+
+{{{ Show the Thank you slide }}}
+
+.. R29
+
+Hope you have enjoyed this tutorial and found it useful.
+Thank you!
diff --git a/ult/ult_7/script2col.rst b/ult/ult_7/script2col.rst
new file mode 100644
index 0000000..b15e85c
--- /dev/null
+++ b/ult/ult_7/script2col.rst
@@ -0,0 +1,210 @@
+.. Objectives
+.. ----------
+
+ .. At the end of this tutorial, you will be able to:
+
+ .. 1. Sort lines of text files
+ .. 2. Print lines matching a pattern
+ .. 3. Translate or delete characters
+ .. 4. Omit repeated lines
+
+
+.. Prerequisites
+.. -------------
+
+.. 1. Getting started with Linux
+.. 2. Redirection and Piping
+
+
+
+Script
+------
+
+
+
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ Show the first slide containing title, name of the production | Hello friends and Welcome to the tutorial on 'Text Processing'. |
+| team along with the logo of MHRD }}} | |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ Show slide with objectives }}} | At the end of this tutorial, you will be able to, |
+| | |
+| | 1. Sort lines of text files |
+| | #. Print lines matching a pattern |
+| | #. Translate or delete characters |
+| | #. Omit repeated lines. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ Switch to the pre-requisite slide }}} | Before beginning this tutorial,we would suggest you to complete the |
+| | former tutorials as being displayed currently. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ Open the terminal }}} | In this tutorial, we shall learn about text processing. |
+| :: | TO begin with, consider data kept in two files, namely marks1.txt and |
+| | students.txt |
+| cat marks1.txt | Let us see what data they contain. Open a terminal and type, |
+| cat students.txt | |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| :: | Let's say we wish to sort the output in the alphabetical order |
+| | of the names of the files. We can use the ``sort`` command for this |
+| cut -d " " -f 2- marks1.txt | paste -d " " students.txt -| sort | purpose. |
+| | |
+| | We just pipe the previous output to the ``sort`` command as, |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| :: | Let's say we wish to sort the names, based on the marks in the first |
+| | subject i.e. the first column after the name. ``sort`` command also allows us to |
+| cut -d " " -f 2- marks1.txt | paste -d " " students.txt -| sort -t " " -k 2 | specify the delimiter between the fields and sort the data on a particular |
+| | field. ``-t`` option is used to specify the delimiter and ``-k`` option |
+| | is used to specify the field. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ Show slide with, Sort... }}} | This command give us a sorted output as required. But, what if we would |
+| | like the output to appear in the reverse order. ``-r`` option allows the output |
+| | to be sorted in the reverse order and the ``-n`` option is used to choose |
+| | a numerical sorting. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ Switch to the terminal }}} | Let us do it on the terminal and see for ourselves, |
+| :: | |
+| | |
+| cut -d " " -f 2- marks1.txt | paste -d " " students.txt -| | |
+| sort -t " " -k 2 -rn | |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| :: | Suppose, While you are compiling the student marklist, Anne walks up to you and |
+| | wants to know her marks. You, being a kind person that you are, oblige. |
+| cut -d " " -f 2- marks1.txt | paste -d " " students.txt - | grep Anne | But you do not wish to her to see the marks that others have scored. What |
+| | do you do? Here, the ``grep`` command comes to your rescue. |
+| | |
+| | ``grep`` is a command line text search utility. You can use it to search |
+| | for Anne and show her, what she scored. ``grep`` allows us to search for a |
+| | search string in files. But we could, like any other command, pipe the |
+| | output of other commands to it. So, we shall use the previous combination |
+| | of cut and paste that we had, to get the marks of students along with their |
+| | names and search for Anne in that. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| :: | This will give us only the line containing the word Anne as the output. |
+| | The grep command is by default case-sensitive. So, we wouldn't have got |
+| cut -d " " -f 2- marks1.txt | paste -d " " students.txt - | grep -i Anne | the result if we had searched for anne, with a small a, instead of |
+| | Anne, with a capital a. But, what if we didn't know, whether the name was |
+| | capitalized or not? ``grep`` allows you to do case-insensitive searches |
+| | by using the ``-i`` option. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| :: | Now, in another scenario, if we wished to print all the lines, which do |
+| | not contain the word Anne, we could use the ``-v`` option. |
+| cut -d " " -f 2- marks1.txt | paste -d " " students.txt - | grep -iv Anne | |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ Switch to the terminal }}} | grep allows us to do more complex searches, for instance, searching for |
+| :: | sentences starting or ending with a particular pattern and regular |
+| | expression based searches. |
+| cat students.txt | tr a-z A-Z | |
+| | {{{ Show slide with, tr }}} |
+| | |
+| | ``tr`` is a command that takes two sets of characters as parameters, and |
+| | replaces occurrences of the characters in the first set with the |
+| | corresponding elements from the other set. It reads from the standard |
+| | output and writes to the standard output. |
+| | |
+| | For instance, if we wish to replace all the lower case letters in the |
+| | students file with upper case, we can do it as, |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| :: | A common task is to remove empty newlines from a file. The ``-s`` flag |
+| | causes ``tr`` to compress sequences of identical adjacent characters in its |
+| tr -s '\n' '\n' | output to a single token. For example, |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| :: | Hit enter 2-3 times and see that every time we hit enter we get a newline. |
+| | |
+| <Enter> | |
+| <Enter> | |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| :: | It replaces sequences of one or more newline characters with a single newline. |
+| | |
+| cat foo.txt | tr -d '\r' > bar.txt | The ``-d`` flag causes ``tr`` to delete all tokens of the specified set of |
+| | characters from its input. In this case, only a single character set |
+| | argument is used. The following command removes carriage return characters, |
+| | thereby converting a file in DOS/Windows format to the Unix format. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| :: | The ``-c`` flag complements the first set of characters. |
+| | |
+| tr -cd '[:alnum:]' | |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| :: | It therefore removes all non-alphanumeric characters. |
+| | |
+| cat items.txt | Let us consider one more scenario.Suppose we have a list of items, say books, |
+| | and we wish to obtain a list which names of all the books only once, without |
+| | any duplicates. To achieve this, we use the ``uniq`` command. Let us first |
+| | have a look at our file |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| :: | Now, let us try and get rid of the duplicate lines from this file using |
+| | the ``uniq`` command. |
+| uniq items.txt | |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| :: | Nothing happens! Why? The ``uniq`` command removes duplicate lines only when |
+| | they are next to each other. So, henceforth, we get a sorted file from the |
+| sort items.txt | uniq | original file and work with that file. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| :: | ``uniq -u`` command gives the lines which are unique and do not have any |
+| | duplicates in the file. ``uniq -d`` outputs only those lines which |
+| uniq -u items-sorted.txt | have duplicates. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| :: | The ``-c`` option displays the number of times each line occurs in the file. |
+| | |
+| uniq -dc items-sorted.txt | |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ Show summary slide }}} | This brings us to the end of the end of this tutorial. |
+| | In this tutorial, we have learnt to, |
+| | |
+| | 1. Use the ``sort`` command to sort lines of text files. |
+| | #. Use the ``grep`` command to search text pattern. |
+| | #. Use the ``tr`` command to translate and/or delete characters. |
+| | #. Use the ``uniq`` command to omit repeated lines in a text. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ Show self assessment questions slide }}} | Here are some self assessment questions for you to solve |
+| | |
+| | 1. To obtain patterns; one per line, which of the following command is used ? |
+| | |
+| | - grep -f |
+| | - grep -i |
+| | - grep -v |
+| | - grep -e |
+| | |
+| | 2. Translate the word 'linux' to upper-case. |
+| | |
+| | 3. Sort the output of the ``ls -al`` command. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ Solution of self assessment questions on slide }}} | And the answers, |
+| | |
+| | 1. In order to obtain patterns one per line, we use the ``grep`` command |
+| | alongwith the -f option. |
+| | |
+| | 2. We use the tr command to change the word into uppercase |
+| | :: |
+| | |
+| | echo 'linux' | tr a-z A-Z |
+| | |
+| | |
+| | 3. We use the sort command as, |
+| | :: |
+| | |
+| | ls -al | sort -n -k5 |
+| | The -n means "sort numerically", and the -k5 option means to key off of |
+| | column five. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ Show the SDES & FOSSEE slide }}} | Software Development techniques for Engineers and Scientists - SDES, is an |
+| | initiative by FOSSEE. For more information, please visit the given link. |
+| | |
+| | Free and Open-source Software for Science and Engineering Education - FOSSEE, is |
+| | based at IIT Bombay which is funded by MHRD as part of National Mission on |
+| | Education through ICT. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ Show the ``About the Spoken Tutorial Project'' slide }}} | Watch the video available at the following link. It summarises the Spoken |
+| | Tutorial project.If you do not have good bandwidth, you can download and |
+| | watch it. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ Show the `` Spoken Tutorial Workshops'' slide }}} | The Spoken Tutorial Project Team conducts workshops using spoken tutorials, |
+| | gives certificates to those who pass an online test. |
+| | |
+| | For more details, contact contact@spoken-tutorial.org |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ Show the ``Acknowledgements'' slide }}} | Spoken Tutorial Project is a part of the "Talk to a Teacher" project. |
+| | It is supported by the National Mission on Education through ICT, MHRD, |
+| | Government of India. More information on this mission is available at the |
+| | given link. |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
+| {{{ Show the Thank you slide }}} | Hope you have enjoyed this tutorial and found it useful. |
+| | Thank you! |
++----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+
diff --git a/ult/ult_7/students.txt b/ult/ult_7/students.txt
new file mode 100644
index 0000000..ddacd6b
--- /dev/null
+++ b/ult/ult_7/students.txt
@@ -0,0 +1,5 @@
+Hussain
+Dilbert
+Anne
+Raul
+Sven
diff --git a/ult/ult_7/ult7.tex b/ult/ult_7/ult7.tex
new file mode 100644
index 0000000..3d981a6
--- /dev/null
+++ b/ult/ult_7/ult7.tex
@@ -0,0 +1,249 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Using Linux Tools
+%
+% Author: FOSSEE
+% Copyright (c) 2009, FOSSEE, IIT Bombay
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\documentclass[17pt,compress]{beamer}
+\usepackage{beamerthemesplit}
+\mode<presentation>
+{
+ \usetheme{Warsaw}
+ \useoutertheme{infolines}
+ \setbeamercovered{transparent}
+ \setbeamertemplate{navigation symbols}{}
+}
+% Taken from Fernando's slides.
+\usepackage{ae,aecompl}
+\usepackage[scaled=.95]{helvet}
+
+\usepackage[english]{babel}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+
+% change the alerted colour to LimeGreen
+\definecolor{LimeGreen}{RGB}{50,205,50}
+\setbeamercolor{structure}{fg=LimeGreen}
+\author[FOSSEE]{}
+\institute[IIT Bombay]{}
+\date[]{}
+% \setbeamercovered{transparent}
+
+% theme split
+\usepackage{verbatim}
+\newenvironment{colorverbatim}[1][]%
+{%
+\color{blue}
+\verbatim
+}%
+{%
+\endverbatim
+}%
+
+\usepackage{mathpazo,courier,euler}
+\usepackage{listings}
+\lstset{language=sh,
+ basicstyle=\ttfamily\bfseries,
+ showstringspaces=false,
+ keywordstyle=\color{black}\bfseries}
+
+% logo
+\logo{\includegraphics[height=1.30 cm]{../images/3t-logo.pdf}}
+\logo{\includegraphics[height=1.30 cm]{../images/fossee-logo.pdf}
+
+\hspace{7.5cm}
+\includegraphics[scale=0.99]{../images/fossee-logo.pdf}\\
+\hspace{281pt}
+\includegraphics[scale=0.80]{../images/3t-logo.pdf}}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% DOCUMENT STARTS
+\begin{document}
+
+\sffamily \bfseries
+\title
+[Text Processing]
+{Text Processing}
+\author
+[FOSSEE]
+{\small Talk to a Teacher\\{\color{blue}\url{http://spoken-tutorial.org}}\\\vspace{0.25cm}National Mission on Education
+ through ICT\\{\color{blue}\url{ http://sakshat.ac.in}} \\ [1.65cm]
+ Contributed by FOSSEE Team \\IIT Bombay \\[0.3cm]
+}
+
+% slide 1
+\begin{frame}
+ \titlepage
+\end{frame}
+
+\begin{frame}
+\frametitle{Objectives}
+\label{sec-2}
+
+At the end of this tutorial, you will be able to,
+\begin{itemize}
+\item Sort lines of text files
+\item Print lines matching a pattern
+\item Translate or delete characters
+\item Omit repeated lines
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{Pre-requisites}
+\label{sec-3}
+
+Spoken tutorial on,
+\begin{itemize}
+\item Getting started with Linux
+\item Redirection and Piping
+\end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]
+ \frametitle{\texttt{sort}}
+\verb~$ cut -d " " -f 2- marks1.txt \~
+\verb~| paste -d " " students.txt -\~
+\verb~| sort -t " " -k 2 -rn~
+ \begin{itemize}
+ \item \texttt{-t} the delimiter between fields
+ \item \texttt{-k} field to use for sorting
+ \item \texttt{-r} for sorting in the reverse order
+ \item \texttt{-n} to choose numerical sorting
+ \end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]
+ \frametitle{\texttt{tr}}
+ \begin{itemize}
+ \item Translates or deletes characters
+ \item Reads from \texttt{stdin} and outputs to \texttt{stdout}
+ \item Given, two sets of characters, replaces one with other
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{Summary}
+\label{sec-8}
+
+ In this tutorial, we have learnt to,
+
+
+\begin{itemize}
+\item Use the ``sort'' command to sort lines of text files
+\item Use the ``grep'' command to search text pattern
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{Summary..}
+\begin{itemize}
+\item Use the ``tr'' command to translate and/or delete characters
+\item Use the ``uniq'' command to omit repeated lines in a text
+\end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Evaluation}
+\label{sec-9}
+
+
+\begin{enumerate}
+\item To obtain patterns; one per line, which of the following command is used ?
+\vspace{3pt}
+\begin{itemize}
+\item grep -f
+\item grep -i
+\item grep -v
+\item grep -e
+\end{itemize}
+\end{enumerate}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Evaluation..}
+\begin{enumerate}
+\setcounter{enumi}{1}
+\item Translate the word `linux' to upper-case.
+\vspace{8pt}
+\item Sort the output of the ``ls -al'' command.
+\end{enumerate}
+\end{frame}
+
+\begin{frame}
+\frametitle{Solutions}
+\label{sec-10}
+
+
+\begin{enumerate}
+\item grep -f
+\vspace{15pt}
+\item \$ echo `linux' | tr a-z A-Z
+\vspace{15pt}
+\item \$ ls -al | sort -n -k5
+\end{enumerate}
+\end{frame}
+
+\begin{frame}
+\frametitle{SDES \& FOSSEE}
+\begin{center}
+\begin{itemize}
+\item \small{SDES}\\
+\small{\color{LimeGreen}Software Development techniques for Engineers and Scientists} \\
+\scriptsize An initiative by FOSSEE. \\
+\vspace{3pt}
+\scriptsize For more information on SDES, please visit {\color{blue}\url{http://fossee.in/sdes}}\\
+\vspace{10pt}
+\item \small{FOSSEE}\\
+\small {\color{LimeGreen}Free and Open-source Software for \\Science and Engineering Education} \\
+\scriptsize Based at IIT Bombay, Funded by MHRD.\\
+\vspace{3pt}
+\scriptsize Part of National Mission on Education through ICT \\(NME-ICT) \\
+\end{itemize}
+\end{center}
+\end{frame}
+
+\begin{frame}
+\frametitle{About the Spoken Tutorial Project}
+\begin{itemize}
+\item Watch the video available at {\color{blue}\url{http://spoken-tutorial.org /What\_is\_a\_Spoken\_Tutorial}}
+\item It summarises the Spoken Tutorial project
+\item If you do not have good bandwidth, you can download and watch it
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{Spoken Tutorial Workshops}The Spoken Tutorial Project Team
+\begin{itemize}
+\item Conducts workshops using spoken tutorials
+\item Gives certificates to those who pass an online test
+\item For more details, please write to \\ \hspace {0.5cm}{\color{blue}contact@spoken-tutorial.org}
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{Acknowledgements}
+\begin{itemize}
+\item Spoken Tutorial Project is a part of the Talk to a Teacher project
+\item It is supported by the National Mission on Education through ICT, MHRD, Government of India
+\item More information on this Mission is available at: \\{\color{blue}\url{http://spoken-tutorial.org/NMEICT-Intro}}
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+
+ \begin{block}{}
+ \begin{center}
+ {\Large THANK YOU!}
+ \end{center}
+ \end{block}
+\begin{block}{}
+ \begin{center}
+ For more Information, visit our website\\
+ {\color{blue}\url{http://fossee.in/}}
+ \end{center}
+ \end{block}
+\end{frame}
+
+
+\end{document}