\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{geometry}
\geometry{top=15mm, bottom=15mm, left=1cm, right=1cm}
\usepackage[french]{babel}
\usepackage{pslatex}
\usepackage[colorlinks=true,urlcolor=black]{hyperref}
\usepackage{graphicx}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\footrulewidth}{0.4pt}
\fancyfoot[L]{Uubu.fr}
\fancyfoot[R]{jeu. juin 24 19:17:10 CEST 2010}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={tr},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Traduit et réduit les caractères},
CreationDate={D:20100624191710},
ModDate={D:20100624191710},
Keywords={coreutils;GNU}
}}
\begin{document}
 
\begin{center}
{\Huge tr }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Traduit et réduit les caractères}
 
\vspace{10mm}
 
\hspace{1mm}  \textbf{tr} copie l'entrée standard sur la sortie standard, en effectuant un de ces opérations :
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} -]{Traduit, et optionnellement réduit les caractères répétés dans le résultat.}
\item[\hspace{1mm} -]{Réduit les caractères répétés.}
\item[\hspace{1mm} -]{Supprimer des caractères}
\item[\hspace{1mm} -]{Supprimer des caractères, puis réduit les caractères répétés dans le résultat.}
\end{description}
 
\vspace{1cm}{\huge Jeux de caractères }
 
\
 
\hspace{1mm}  Les arguments \textbf{SET1} et \textbf{SET2} définissent les jeux de caractères ordonnés.
\vspace{5mm} \\
\hspace{1mm}  Le format de SET1 et SET2 ressemble au format des expressions régulières ; cependant ce ne sont pas des expressions régulières, seulement des listes de caractères.
\vspace{5mm} \\
\hspace{1mm}  Caractères spéciaux reconnus :
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{6mm} \textbackslash{}a]{Control-G}
\item[\hspace{6mm} \textbackslash{}b]{Control-H}
\item[\hspace{6mm} \textbackslash{}f]{Control-L}
\item[\hspace{6mm} \textbackslash{}n]{Control-J}
\item[\hspace{6mm} \textbackslash{}r]{Control-M}
\item[\hspace{6mm} \textbackslash{}t]{Control-I}
\item[\hspace{6mm} \textbackslash{}v]{Control-K}
\item[\hspace{6mm} \textbackslash{}000]{Représente la valeur en octal d'un caractère.}
\item[\hspace{6mm} \textbackslash{}\textbackslash{}]{backslash}
\end{description}
 
\vspace{1cm}{\huge Plages }
 
\
 
\hspace{1mm}  une plage est sous la forme \textbf{M-N}
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Caractères répétés }
 
\
 
\hspace{1mm}  La notation \textbf{[C*N]} dans \textbf{SET2} étend \textbf{N} copies du caractère \textbf{C}. donc \textbf{[y*6]} revient à \textbf{yyyyyy}.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Classes de caractères }
 
\
 
\hspace{1mm}  La notation \textbf{[:CLASS :]} s'étend à tous les caractères de la classe prédéfinie CLASS.
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{6mm} alnum]{Lettres et chiffres}
\item[\hspace{6mm} alpha]{Lettres}
\item[\hspace{6mm} blank]{Espaces horizontaux}
\item[\hspace{6mm} cntrl]{Caractères de contrôle}
\item[\hspace{6mm} digit]{Chiffres}
\item[\hspace{6mm} graph]{Caractères imprimables, mais pas les espaces}
\item[\hspace{6mm} lower]{Lettres minuscules}
\item[\hspace{6mm} print]{Caractères imprimables}
\item[\hspace{6mm} punct]{Caractères de ponctuation}
\item[\hspace{6mm} space]{Espaces horizontaux et verticaux}
\item[\hspace{6mm} upper]{Lettre majuscules}
\item[\hspace{6mm} xdigits]{Chiffres Hexadécimaux}
\end{description}
 
\vspace{1cm}{\huge Traduction }
 
\
 
\hspace{1mm}  \textbf{tr} effectue une traduction quand \textbf{SET1} et \textbf{SET2} sont données et que l'option \textbf{--delete} n'est pas donné. \textbf{tr} traduit chaque caractère de l'entrée qui est listé dans \textbf{SET1} par le caractère spécifié dans \textbf{SET2}.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Exemple }
 
\
 
\hspace{1mm} Tout mettre en majuscule \\
\hspace{1mm} \textbf{tr a-Z A-Z ou tr '[:lower:]' '[:upper:]'} \\
 
\vspace{1cm}{\huge Réduire }
 
\
 
\hspace{1mm}  En donnant juste l'option \textbf{--delete} ou \textbf{-d}, \textbf{tr} supprime tous caractère listé dans \textbf{SET1}.
\vspace{5mm} \\
\hspace{1mm}  En donnant juste l'option \textbf{--squeeze-repeats} ou \textbf{-s}, \textbf{tr} remplace chaque séquence de caractères répété et listé dans \textbf{SET1}, par un seul.
\vspace{5mm} \\
\hspace{1mm}  En utilisant ces 2 options, \textbf{tr} supprime d'abord en utilisant \textbf{SET1}, puis réduit en utilisant \textbf{SET2}. \textbf{-s} peut être utilisé avec la traduction.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Exemples }
 
\
 
\hspace{1mm} supprimer tous les octets 0 \\
\hspace{1mm} \textbf{tr -d '\textbackslash{}0'} \\
\hspace{1mm} convertit tous les caractère non-alphanumérique en newline, puis réduit les newlines répétés \\
\hspace{1mm} \textbf{tr -cs '[:alnum :]' '[\textbackslash{}n*]'} \\
\hspace{1mm} supprimer les newlines consécutifs \\
\hspace{1mm} \textbf{tr -s '\textbackslash{}n'} \\
\hspace{1mm} trouver les occurrences doublées de mots dans un document \\
\hspace{1mm} \textbf{\#! /bin/sh} \\
\hspace{1mm} \textbf{cat -- "\$@" | tr -s '[:punct:][:blank:]' '[\textbackslash{}n*]' | tr '[:upper:]' '[:lower:]' | uniq -d} \\
\end{flushleft}
\end{document}
