%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Using Linux Tools % % Author: FOSSEE % Copyright (c) 2009, FOSSEE, IIT Bombay %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \documentclass[17pt,compress]{beamer} \usepackage{beamerthemesplit} \mode { \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 [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] } % 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 Understand what is Redirection \item Learn the concept of Piping \end{itemize} \end{frame} \begin{frame} \frametitle{Pre-requisites} \label{sec-3} Spoken tutorial on, \begin{itemize} \item Getting started with Linux \item Basic File Handling \item Advanced File handling \end{itemize} \end{frame} \begin{frame}[fragile] \frametitle{Redirection} \begin{itemize} \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} $ command > file1 \end{lstlisting} % $ \end{frame} \begin{frame}[fragile] \frametitle{Redirection..} \begin{itemize} \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{Piping..} \begin{itemize} \item Roughly same as -- two redirects and a temporary file \end{itemize} \begin{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} In this tutorial, we have learnt to, \begin{itemize} \item Use the ``cut'' and ``paste'' commands in redirection \item Apply the concept of Piping \end{itemize} \end{frame} \begin{frame}[fragile] \frametitle{Evaluation} \label{sec-9} \begin{enumerate} \item How to redirect content from file to 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 cut -d : -f 4 /home/test.txt \item cut -f 3 /home/test.txt \item cut -d : -f 3 /home/test.txt \end{itemize} \end{enumerate} \end{frame} \begin{frame} \frametitle{Solutions} \label{sec-10} \begin{enumerate} \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} {\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}