diff options
author | Jovina | 2012-08-08 12:27:24 +0530 |
---|---|---|
committer | Jovina | 2012-08-08 12:27:24 +0530 |
commit | 4e7075d23dfff0583c17afd1cceb9cc44164212c (patch) | |
tree | c7e4914c71a9448fb342b1abc12d99f4cfa40e14 | |
parent | e447a219a2e4d89c1bb09780519b84b5b1082b11 (diff) | |
download | sdes-stscripts-4e7075d23dfff0583c17afd1cceb9cc44164212c.tar.gz sdes-stscripts-4e7075d23dfff0583c17afd1cceb9cc44164212c.tar.bz2 sdes-stscripts-4e7075d23dfff0583c17afd1cceb9cc44164212c.zip |
Made changes based on the review.
-rw-r--r-- | ult/ult_5/script.rst | 333 | ||||
-rw-r--r-- | ult/ult_5/ult5.tex | 252 |
2 files changed, 340 insertions, 245 deletions
diff --git a/ult/ult_5/script.rst b/ult/ult_5/script.rst index e112ff7..2937397 100644 --- a/ult/ult_5/script.rst +++ b/ult/ult_5/script.rst @@ -3,17 +3,15 @@ .. At the end of this tutorial, you will be able to: - .. 1. - .. 2. + .. 1. Understand what is Redirection and Piping. + .. 2. Learn various features of shell. .. Prerequisites .. ------------- -.. 1. Using Linux tools - Part 1 -.. 2. Using Linux tools - Part 2 -.. 3. Using Linux tools - Part 3 -.. 4. Using Linux tools - Part 4 - +.. 1. Getting started with Linux +.. 2. Basic File Handling +.. 4. Advanced file handling Script ------ @@ -26,7 +24,7 @@ team along with the logo of MHRD }}} .. R1 Hello friends and Welcome to the tutorial on -'Using linux tools - Part 5'. +'Redirection and Piping'. .. L2 @@ -36,11 +34,8 @@ Hello friends and Welcome to the tutorial on 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. - + 1. Understand what is Redirection. + #. Learn the concept of Piping. .. L3 @@ -49,14 +44,15 @@ At the end of this tutorial, you will be able to, .. R3 Before beginning this tutorial,we would suggest you to complete the -tutorial on "Using Linux tools from Part 1 to Part 4". +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, +Let us begin with the concept of 'Redirection and Piping' which +performs the same operations as the ``cut`` and ``paste`` commands. + +Consider the files ``marks.txt`` and ``students.txt``.The contents of +the files are as following: .. L4 @@ -68,274 +64,267 @@ Let us see what data they contain. Open a terminal and type, .. 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, +Now, let us view the contents of both these files side-by-side. .. L5 :: - cut -d " " -f 2- marks1.txt | paste -d " " students.txt -| sort + cut -d " " -f 2- marks1.txt | paste -d " " students.txt - .. 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. +Now, in order to view the same output in a new file at an other +location, we say, .. L6 :: - cut -d " " -f 2- marks1.txt | paste -d " " students.txt -| sort -t " " -k 2 + cut -d " " -f 2- marks1.txt > /tmp/m_tmp.txt + paste -d " " students.txt m_tmp.txt -.. L7 +.. R7 -{{{ Show slide with, Sort... }}} +First, let us try to understand the second solution,which is a two +step approach. +Later, we shall look at the first solution. -.. R7 +.. L7 + +.. L8 -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. +{{{ Show slide, with Redirection }}} .. R8 -Let us do it on the terminal and see for ourselves, +The standard output, in general, goes to the display. +But, this may not be what we always require. -.. L8 +For instance, in the solution above, we use the cut command and get only +the required columns of the file and write the output to a new temporary +file. The ``>`` character is used to state that we wish to redirect the +output, and it is followed by the location to which we wish to redirect. +For example, -{{{ Switch to the terminal }}} -:: + command > file1 - cut -d " " -f 2- marks1.txt | paste -d " " students.txt -| - sort -t " " -k 2 -rn +.. L9 + +{{{ Show slide, with Redirection.. }}} .. 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. +Similarly, the standard input (stdin) can be redirected as, + + command < file1 -``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. +The input and the output redirection could be combined in a single command, +as, -.. L9 -:: + command < infile > outfile - cut -d " " -f 2- marks1.txt | paste -d " " students.txt - | grep Anne +.. L10 -.. R10 +{{{ Show slide, with stderr }}} -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 -:: +.. R10 - cut -d " " -f 2- marks1.txt | paste -d " " students.txt - | grep -i Anne +There is actually a third kind of standard stream, called the Standard +error (stderr). Any error messages that you get, are coming through this +stream. Like ``stdout``, ``stderr`` also streams to the display by default, +but it could be redirected to a file, as well. .. 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. +For instance, let's reproduce an error using the ``cut`` command used +before. We shall change the ``-f`` option to ``-c`` .. L11 + +{{{ Switch to terminal }}} :: - cut -d " " -f 2- marks1.txt | paste -d " " students.txt - | grep -iv Anne + cut -d " " -c 2- marks1.txt > /tmp/m_tmp.txt .. 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, +This displays an error saying that the delimiter option should be used +with the fields option only. You may verify this by looking at the +``m_tmp.txt`` file, which is now empty.We can now, redirect the +``stderr`` also to a file, instead of showing it on the display. .. L12 - -{{{ Switch to the terminal }}} :: - cat students.txt | tr a-z A-Z + cut -d " " -f 2- marks1.txt 1> /tmp/m_tmp.txt 2> /tmp/m_err.txt .. 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, +The above command redirects all the errors to the ``m_err.txt`` file +and the output to the ``m_tmp.txt`` file. When redirecting, 1 stands +for ``stdout`` and 2 stands for ``stderr``. + +Let us complete the solution by using the ``paste`` command. .. L13 :: - tr -s '\n' '\n' + paste -d " " students.txt m_tmp.txt .. R14 -Hit enter 2-3 times and see that every time we hit enter we get a newline. +So, in two steps we solved the problem of getting rid of the roll numbers +from the marks file and displaying the marks along with the names of the +students. Now, that we know how to redirect output, we could choose to +write the output to a file, instead of showing on the display. + +Let us now look at the first solution. .. L14 :: - <Enter> - <Enter> + cut -d " " -f 2- marks1.txt | paste -d " " students.txt - + +.. L15 + +{{{ Show slide, with Piping }}} .. R15 -It replaces sequences of one or more newline characters with a single newline. +First of all, the hyphen at the end is to ask the paste command to +read the standard input, instead of looking for a FILE. The ``man`` +page of ``paste`` command gives us this information. -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. +Now, let us observe the ``cut`` command. If we look at the command only +upto the ``|`` character, it appears as a normal ``cut`` command . -.. L15 -:: +.. L16 - cat foo.txt | tr -d '\r' > bar.txt +{{{ Show slide, with Piping.. }}} .. R16 -The ``-c`` flag complements the first set of characters. +So, the ``|`` character here, seems +to be joining the two commands in some way. +Essentially, what we are doing is, to redirect the output of the first +command to ``stdin`` and the second command takes the input from the ``stdin``. +This activity is commonly called piping and the character ``|`` is called +a pipe. -.. L16 -:: +.. L17 - tr -cd '[:alnum:]' +{{{ Show slide, with Piping... }}} .. R17 -It therefore removes all non-alphanumeric characters. +This is roughly equivalent to using two redirects and a temporary file. -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 + command1 > tempfile + command2 < tempfile + rm tempfile -.. L17 -:: +Also, given that a pipe is just a way to send the output of a command to +the ``stdin``, it should be obvious to you that we can use a chain of +pipes. Any number of commands can be piped together and therefore it should + be noted that it is not restricted to only two commands. - cat items.txt +.. L18 -.. R18 +{{{ Switch to Summary slide }}} -Now, let us try and get rid of the duplicate lines from this file using -the ``uniq`` command. +.. R18 -.. L18 -:: +This brings us to the end of the end of this tutorial. +In this tutorial, we have learnt to, - uniq items.txt + 1. Use the ``cut`` and ``paste`` commands in redirection. + 2. Use the pipe ( | ) character. + +.. L19 + +{{{ Show self assessment questions slide }}} .. 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. +Here are some self assessment questions for you to solve: -.. L19 -:: +1. How will you redirect the content of a file to a device ? + +2. How to view last field(30), in a file located at /home/test.txt whose + first line is "data:myscripts:20:30" + + - cut -d : -f 4 /home/test.txt + - cut -f 3 /home/test.txt + - cut -d : -f 3 /home/test.txt + + +.. L20 - sort items.txt | uniq +{{{ Solutions for the self assessment questions on slide }}} .. 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. +And the answers: -.. L20 +1. A file can be redirected to a device as, +:: + + cat filename > device +For eg: :: - uniq -u items-sorted.txt - -.. R21 + cat sound.wav > /dev/audio + -The ``-c`` option displays the number of times each line occurs in the file. +2. The correct option would be +:: + + cut -d : -f 4 /home/test.txt .. L21 -:: - uniq -dc items-sorted.txt +{{{ Show the SDES & FOSSEE slide }}} + +.. R21 + +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. .. L22 -{{{ Show summary slide }}} +{{{ Show the ``About the Spoken Tutorial Project'' 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. +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. .. L23 -{{{ Show self assessment questions slide }}} +{{{ Show the `` Spoken Tutorial Workshops'' slide }}} .. R23 -Here are some self assessment questions for you to solve +The Spoken Tutorial Project Team conducts workshops using spoken tutorials, +gives certificates to those who pass an online test. - 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. +For more details, contact contact@spoken-tutorial.org .. L24 -{{{ Solution of self assessment questions on slide }}} +{{{ Show the ``Acknowledgements'' 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. +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. .. L25 diff --git a/ult/ult_5/ult5.tex b/ult/ult_5/ult5.tex index 293b76f..7f22fc6 100644 --- a/ult/ult_5/ult5.tex +++ b/ult/ult_5/ult5.tex @@ -5,113 +5,174 @@ % Copyright (c) 2009, FOSSEE, IIT Bombay %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\documentclass[12pt,compress]{beamer} - +\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{times} \usepackage[T1]{fontenc} -% Taken from Fernando's slides. -\usepackage{ae,aecompl} -\usepackage{mathpazo,courier,euler} -\usepackage[scaled=.95]{helvet} +% change the alerted colour to LimeGreen +\definecolor{LimeGreen}{RGB}{50,205,50} +\setbeamercolor{structure}{fg=LimeGreen} +\author[FOSSEE]{} +\institute[IIT Bombay]{} +\date[]{} +% \setbeamercovered{transparent} -\definecolor{darkgreen}{rgb}{0,0.5,0} +% theme split +\usepackage{verbatim} +\newenvironment{colorverbatim}[1][]% +{% +\color{blue} +\verbatim +}% +{% +\endverbatim +}% +\usepackage{mathpazo,courier,euler} \usepackage{listings} \lstset{language=sh, basicstyle=\ttfamily\bfseries, - commentstyle=\color{red}\itshape, - stringstyle=\color{darkgreen}, showstringspaces=false, - keywordstyle=\color{blue}\bfseries} + 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} -\begin{frame} +\sffamily \bfseries +\title +[Redirection and Piping] +{Redirection and Piping} +\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] +} -\begin{center} -\vspace{12pt} -\textcolor{blue}{\huge Using Linux Tools} -\end{center} -\vspace{18pt} -\begin{center} -\vspace{10pt} -\includegraphics[scale=0.95]{../images/fossee-logo.png}\\ -\vspace{5pt} -\scriptsize Developed by FOSSEE Team, IIT-Bombay. \\ -\scriptsize Funded by National Mission on Education through ICT\\ -\scriptsize MHRD,Govt. of India\\ -\includegraphics[scale=0.30]{../images/iitb-logo.png}\\ -\end{center} +% 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. +\item Understand what is Redirection +\item Learn the concept of Piping \end{itemize} \end{frame} \begin{frame} -\frametitle{Pre-requisite} +\frametitle{Pre-requisites} \label{sec-3} -Spoken tutorial on - +Spoken tutorial on, \begin{itemize} -\item Using Linux tools -- Part I -\item Using Linux tools -- Part II -\item Using Linux tools -- Part III -\item Using Linux tools -- Part IV +\item Getting started with Linux +\item Basic File Handling +\item Advanced file handling \end{itemize} \end{frame} \begin{frame}[fragile] - \frametitle{\texttt{sort} \ldots} + \frametitle{Redirection} + \begin{itemize} - \item The command below sorts, based on marks in first subject + \item The standard output (stdout) stream goes to the display + \item May not be always, what we need + \item \texttt{>} states that output is redirected to the specified location + \item It is followed by location to redirect, \end{itemize} \begin{lstlisting} - $ cut -d " " -f 2- marks1.txt \ - | paste -d " " students.txt -\ - | sort -t " " -k 2 -rn + $ command > file1 \end{lstlisting} % $ +\end{frame} + +\begin{frame}[fragile] + \frametitle{Redirection..} \begin{itemize} - \item \texttt{-t} specifies the delimiter between fields - \item \texttt{-k} specifies the field to use for sorting - \item \texttt{-r} for sorting in the reverse order - \item \texttt{-n} to choose numerical sorting + \item Similarly, the standard input (stdin) can be redirected as + \end{itemize} + \hspace{29pt}\texttt{\$ command < file1} + \begin{itemize} + \item input and output redirection could be combined + \end{itemize} + \hspace{29pt}\texttt{\$ command < infile > outfile} +\end{frame} + +\begin{frame} +\frametitle{stderr} + \begin{itemize} + \item Standard error (stderr) is the third standard stream + \item All error messages come through this stream + \item \texttt{stderr} can also be redirected + \end{itemize} +\end{frame} + +\begin{frame}[fragile] +\frametitle{Piping} +\begin{lstlisting} +$ cut -d " " -f 2- marks1.txt + | paste -d " " students.txt - + \end{lstlisting} % $ + \begin{itemize} + \item \texttt{-} at the end asks \texttt{paste} to read from + \texttt{stdin} instead of FILE + \item \texttt{cut} command here is a normal command + \end{itemize} +\end{frame} + +\begin{frame}[fragile] +\frametitle{Piping..} +\begin{itemize} + \item the \texttt{|} seems to be joining the two commands + \item Redirects output of first command to \texttt{stdin}, which + becomes input to the second command + \item This is called piping; \texttt{|} is called a pipe \end{itemize} \end{frame} \begin{frame}[fragile] - \frametitle{\texttt{tr}} + \frametitle{Piping..} \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 - \item The following, replaces all lower-case with upper-case + \item Roughly same as -- two redirects and a temporary file \end{itemize} \begin{lstlisting} - $ cat students.txt | tr a-z A-Z - \end{lstlisting} % $ + $ command1 > tempfile + $ command2 < tempfile + $ rm tempfile +\end{lstlisting} % $ +\begin{itemize} +\item Any number of commands can be piped together +\end{itemize} \end{frame} + \begin{frame} \frametitle{Summary} \label{sec-8} @@ -120,10 +181,8 @@ Spoken tutorial on - \begin{itemize} -\item Use the ``sort'' command to sort lines of text files. -\item Use the ``grep'' command to search text pattern. -\item Use the ``tr'' command to translate and/or delete characters. -\item Use the ``uniq'' command to omit repeated lines in a text. +\item Use the ``cut'' and ``paste'' commands in redirection +\item Use the pipe ( | ) character \end{itemize} \end{frame} \begin{frame}[fragile] @@ -132,18 +191,16 @@ Spoken tutorial on - \begin{enumerate} -\item To obtain patterns; one per line, which of the following command is used ? -\vspace{3pt} +\item How will you redirect the content of a file to a device ? +\vspace{12pt} +\item How to view last field(30), in a file located at \verb~/home/test.txt~ +whose first line is "data:myscripts:20:30" +\vspace{5pt} \begin{itemize} -\item grep -f -\item grep -i -\item grep -v -\item grep -e +\item cut -d : -f 4 /home/test.txt +\item cut -f 3 /home/test.txt +\item cut -d : -f 3 /home/test.txt \end{itemize} -\vspace{8pt} -\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} @@ -152,27 +209,76 @@ Spoken tutorial on - \begin{enumerate} -\item grep -f -\vspace{15pt} -\item \$ echo `linux' | tr a-z A-Z -\vspace{15pt} -\item \$ ls -al | sort -n -k5 +\item \$ cat filename > device\\ +For eg:\\ +\hspace{8pt} \verb~cat sound.wav > /dev/audio~ +\vspace{22pt} +\item \$ cut -d : -f 4 /home/test.txt \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} - \textcolor{blue}{\Large THANK YOU!} + {\Large THANK YOU!} \end{center} \end{block} \begin{block}{} \begin{center} For more Information, visit our website\\ - \url{http://fossee.in/} + {\color{blue}\url{http://fossee.in/}} \end{center} \end{block} \end{frame} + \end{document} + |