%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Using Linux Tools % % Author: FOSSEE % Copyright (c) 2009, FOSSEE, IIT Bombay %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \documentclass[12pt,compress]{beamer} \mode { \usetheme{Warsaw} \useoutertheme{infolines} \setbeamercovered{transparent} } \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} \definecolor{darkgreen}{rgb}{0,0.5,0} \usepackage{listings} \lstset{language=sh, basicstyle=\ttfamily\bfseries, commentstyle=\color{red}\itshape, stringstyle=\color{darkgreen}, showstringspaces=false, keywordstyle=\color{blue}\bfseries} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % DOCUMENT STARTS \begin{document} \begin{frame} \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} \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-requisite} \label{sec-3} 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 \end{itemize} \end{frame} \begin{frame}[fragile] \frametitle{\texttt{sort} \ldots} \begin{itemize} \item The command below sorts, based on marks in first subject \end{itemize} \begin{lstlisting} $ cut -d " " -f 2- marks1.txt \ | paste -d " " students.txt -\ | sort -t " " -k 2 -rn \end{lstlisting} % $ \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 \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 \item The following, replaces all lower-case with upper-case \end{itemize} \begin{lstlisting} $ cat students.txt | tr a-z A-Z \end{lstlisting} % $ \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. \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} \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} \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} \begin{block}{} \begin{center} \textcolor{blue}{\Large THANK YOU!} \end{center} \end{block} \begin{block}{} \begin{center} For more Information, visit our website\\ \url{http://fossee.in/} \end{center} \end{block} \end{frame} \end{document}