<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Opérations sur les fichiers et filtres</title><meta name="generator" content="DocBook XSL Stylesheets V1.64.0"><link rel="home" href="index.html" title="Manuel de référence"><link rel="up" href="cmdutils.html" title="Chapitre 5. Les utilitaires en ligne de commande"><link rel="previous" href="cmdutils.html" title="Chapitre 5. Les utilitaires en ligne de commande"><link rel="next" href="command-find.html" title="find : rechercher des fichiers selon certains critères"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Opérations sur les fichiers et filtres</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="cmdutils.html">Précédent</a> </td><th width="60%" align="center">Chapitre 5. Les utilitaires en ligne de commande</th><td width="20%" align="right"> <a accesskey="n" href="command-find.html">Suivant</a></td></tr></table><hr></div><div class="sect1" lang="fr"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="command-files"></a>Opérations sur les fichiers et filtres</h2></div></div><div></div></div><p><a name="BId-cmdutils-pa3"></a>La plupart du travail en ligne de commande s'applique à des fichiers. Dans cette section nous allons voir comment surveiller et filtrer l'information dans les fichiers, extraire des informations spécifiques avec une simple commande, et trier des fichiers</p><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a name="command-cat"></a>cat, tail, head, tee : afficher des fichiers</h3></div></div><div></div></div><p><a name="BId-cmdutils-pa4"></a>Ces commandes ont pratiquement toutes la même syntaxe : <a name="BId-cmdutils-sc1"></a></p><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">commande [option(s)] [fichier(s)]</pre></td></tr></table><p> et peuvent être utilisées dans un tube. Toutes sont utilisées pour imprimer une partie d'un fichier selon certains critères.</p><p><a name="BId-cmdutils-pa5"></a>L'utilitaire <span><b class="command">cat</b></span> agglomère des fichiers et les imprime sur la sortie standard. C'est une des commandes les plus utilisées. Vous pouvez utiliser :</p><a name="BId-cmdutils-pl1"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting"># cat /var/log/mail/info</pre></td></tr></table><p><a name="BIdNEW-cmdutils-pa139"></a>pour afficher, par exemple, le contenu du journal (<span class="foreignphrase"><i class="foreignphrase">log</i></span>) du démon de courrier sur la sortie standard<sup>[<a name="id2543708" href="#ftn.id2543708">15</a>]</sup>. la commande <span><b class="command">cat</b></span> a une option très utile (<tt class="option">-n</tt>) qui permet de numéroter les lignes affichées.</p><p><a name="BId-cmdutils-pa7"></a>Certains fichiers, comme les fichiers journaux des démons (s'ils sont utilisés), sont souvent de taille énorme<sup>[<a name="id2543774" href="#ftn.id2543774">16</a>]</sup> et les afficher dans leur intégralité à l'écran n'a aucun intérêt. Vous voudrez souvent ne consulter que quelques lignes d'un fichier. Vous pouvez par exemple utiliser la commande <span><b class="command">tail</b></span> pour n'afficher que les dernières lignes de <tt class="filename">/var/log/mail/info</tt> :</p><a name="BId-cmdutils-pl2"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting"># tail /var/log/mail/info</pre></td></tr></table><p><a name="BIdNEW-cmdutils-pa140"></a>Elle affichera les dix dernières lignes du fichier <tt class="filename">/var/log/mail/info</tt>. Si vous souhaitez n'afficher que les deux premières lignes vous pouvez utiliser l'option <tt class="option">-n</tt> :</p><a name="BId-cmdutils-pl3"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting"># tail -n2 /var/log/mail/info</pre></td></tr></table><p><a name="BId-cmdutils-pa9"></a>La commande <span><b class="command">head</b></span> est similaire à <span><b class="command">tail</b></span>, mais affiche les premières lignes d'un fichier. Sans option, elle affiche les 10 premières lignes du fichier spécifié :</p><a name="BId-cmdutils-pl4"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting"># head /var/log/mail/info</pre></td></tr></table><p><a name="BIdNEW-cmdutils-pa141"></a>Cette commande sans option affiche les 10 premières lignes de <tt class="filename">/var/log/mail/info</tt>. Comme avec <span><b class="command">tail</b></span> vous pouvez imprimer les deux dernières lignes à l'aide de l'option <tt class="option">-n</tt> :</p><a name="BId-cmdutils-pl5"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting"># head -n2 /var/log/mail/info</pre></td></tr></table><p><a name="BId-cmdutils-pa10"></a>Vous pouvez aussi utiliser ces commandes de concert. Par exemple, si vous souhaitez seulement afficher les lignes 9 et 10, vous pouvez lancer la commande <span><b class="command">head</b></span> qui sélectionnera les 10 premières lignes du fichier, les passera à la commande <span><b class="command">tail</b></span> au travers d'un tube (<tt class="literal">|</tt>) :</p><a name="BId-cmdutils-pl6"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting"># head /var/log/mail/info | tail -n2</pre></td></tr></table><p><a name="BIdNEW-cmdutils-pa142"></a>La dernière partie de la commande sélectionnera les 2 dernières lignes et les imprimera à l'écran. De la même façon vous pouvez sélectionner toutes les lignes à partir de la ligne 20 :</p><a name="BId-cmdutils-pl7"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting"># tail -n20 /var/log/mail/info |head -n1</pre></td></tr></table><p><a name="BIdNEW-cmdutils-pa143"></a>Dans cet exemple, nous disons à <span><b class="command">tail</b></span> de sélectionner les 20 dernières lignes du fichier, puis de les passer à <span><b class="command">head</b></span>. Cette dernière en affiche alors la première ligne.</p><p><a name="BId-cmdutils-pa11"></a>Supposons maintenant que nous souhaitions à la fois afficher à l'écran et enregistrer le résultat de la commande précédente dans le fichier <tt class="filename">resultats.txt</tt>. L'utilitaire <span><b class="command">tee</b></span> va nous y aider. Sa syntaxe est :</p><a name="BId-cmdutils-sc2"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">tee [option(s)] [file]</pre></td></tr></table><p><a name="BId-cmdutils-pa12"></a>Nous changeons alors la commande précédente :</p><a name="BId-cmdutils-pl8"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting"># tail -n20 /var/log/mail/info |head -n1|tee resultats.txt</pre></td></tr></table><p><a name="BIdNEW-cmdutils-pa144"></a>Prenons un autre exemple. Nous voulons sélectionner les 20 dernières lignes, les enregistrer dans <tt class="filename">resultats.txt</tt>, mais afficher à l'écran seulement les premières de ces lignes. Nous écrivons alors :</p><a name="BId-cmdutils-pl9"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting"># tail -n20 /var/log/mail/info |tee resultats.txt |head -n1</pre></td></tr></table><p><a name="BId-cmdutils-pa13"></a>La commande <span><b class="command">tee</b></span> a une option très utile (<tt class="option">-a</tt>) qui permet d'ajouter les informations reçues à un fichier existant au lieu de l'écraser.</p><p><a name="BId-cmdutils-pa14"></a>Revenons à la commande <span><b class="command">tail</b></span>. Les fichiers comme les journaux changent souvent car les démons y rajoutent sans cesse de l'information au sujet de leur activité. Si vous voulez alors surveiller de manière interactive des changements sur ces journaux, vous pouvez tirer avantage de l'une des options les plus utiles de <span><b class="command">tail</b></span> : <tt class="option">-f</tt>:</p><a name="BId-cmdutils-pl10"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting"># tail -f /var/log/mail/info</pre></td></tr></table><p><a name="BIdNEW-cmdutils-pa145"></a>Dans ce cas, tous les changements dans le fichier <tt class="filename">/var/log/mail/info</tt> sont affichés immédiatement à l'écran. Cette option est très utile pour surveiller l'activité de votre système. Par exemple, en regardant dans le journal <tt class="filename">/var/log/messages</tt>, vous pouvez surveiller les messages du système et plusieurs démons. Cette option peut aussi être utilisée pour surveiller n'importe quel autre fichier.</p><p><a name="BId-cmdutils-pa15"></a>Dans la section qui suit nous allons voir comment nous pouvons utiliser <span class="application">grep</span> comme filtre pour séparer les messages de <span class="application">Postfix</span> des messages émanant des autres services.</p><p> </p><p> </p><p> </p></div><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a name="command-grep"></a>grep : rechercher du texte dans un ou plusieurs fichier(s)</h3></div></div><div></div></div><p><a name="BId-cmdutils-pa16"></a> <a class="indexterm" name="BId-cmdutils-it1"></a>D'accord, le nom n'est pas intuitif mais son utilisation est très simple : il cherche un motif donné en argument dans un ou plusieurs fichiers. Sa syntaxe est : <a name="BId-cmdutils-sc3"></a></p><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">grep [options] <motif> [un ou plusieurs fichier(s)]</pre></td></tr></table><p> Si on a précisé plusieurs noms de fichiers, ceux-ci apparaîtront en début des lignes et rempliront les critères du motif, à moins qu'on ait utilisé l'option <tt class="option">-h</tt>. L'option <tt class="option">-l</tt>, quant à elle, a pour effet de n'afficher que le nom des fichiers dont au moins une ligne remplit les conditions du motif. Le motif est une expression régulière, bien que la plupart du temps il ne consiste qu'en un simple mot. Les options les plus couramment utilisées sont les suivantes :</p><div class="orderedlist"><ol type="1"><li><p><a name="BId-cmdutils-pa17"></a><tt class="option">-i</tt> : rechercher en ignorant la casse (c'est-à-dire ignorer la différence entre majuscules et minuscules).</p></li><li><p><a name="BId-cmdutils-pa18"></a><tt class="option">-v</tt> : inverser la recherche, donc trouver les lignes ne correspondant <span class="emphasis"><em>pas</em></span> au motif.</p></li><li><p><a name="BId-cmdutils-pa19"></a><tt class="option">-n</tt> : afficher le numéro de ligne pour chaque ligne trouvée.</p></li><li><p><a name="BId-cmdutils-pa20"></a><tt class="option">-w</tt> : dit à <span class="application">grep</span> que le motif doit correspondre à un mot entier. Attention, les caractères considérés comme pouvant faire partie d'un mot dépendent du réglage de la langue.</p></li></ol></div><p><a name="BId-cmdutils-pa21"></a>Reprenons notre exemple du fichier journal du démon de courrier. Nous souhaitons trouver toutes les lignes du fichier <tt class="filename">/var/log/mail/info</tt> qui contiennent la séquence « <span class="quote">postfix</span> » :</p><a name="BId-cmdutils-pl11"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting"># grep postfix /var/log/mail/info</pre></td></tr></table><p><a name="BId-cmdutils-pa22"></a>La commande <span class="application">grep</span> peut être utilisée dans un tube. Nous pouvons ainsi obtenir le même résultat en faisant : <a name="BId-cmdutils-pl12"></a></p><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting"># cat /var/log/mail/info | grep postfix </pre></td></tr></table><p> </p><p><a name="BId-cmdutils-pa23"></a>Si nous voulons inverser la condition pour sélectionner les lignes qui ne contiennent pas la séquence « <span class="quote">postfix</span> », nous utilisons l'option <tt class="option">-v</tt> :</p><a name="BId-cmdutils-pl13"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting"># grep -v postfix /var/log/mail/info</pre></td></tr></table><p><a name="BId-cmdutils-pa24"></a>Supposons que nous voulions trouver tous les messages signalant un message envoyé avec succès. Dans ce cas, nous devons filtrer les lignes du journal provenant du démon de courrier (contenant donc la séquence « <span class="quote">postfix</span> ») contenant la séquence indiquant un envoi réussi (« <span class="quote">status=sent</span> ») :</p><a name="BId-cmdutils-pl14"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting"># grep postfix /var/log/mail/info |grep status=sent</pre></td></tr></table><p><a name="BIdNEW-cmdutils-pa146"></a>Dans ce cas, <span class="application">grep</span> est utilisé deux fois. C'est possible mais pas très élégant. Nous pouvons obtenir le même résultat en utilisant l'utilitaire <span><b class="command">fgrep</b></span>. Pour cela nous devons créer le fichier <tt class="filename">sequences.txt</tt> contenant les séquences écrites sur une colonne. Un tel fichier peut être obtenu de cette façon :</p><a name="BId-cmdutils-pl15"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting"># echo -e 'status=sent\npostfix' >./sequences.txt</pre></td></tr></table><p><a name="BIdNEW-cmdutils-pa147"></a>Nous appelons alors une commande utilisant le fichier de séquences <tt class="filename">sequences.txt</tt> et l'utilitaire <span><b class="command">fgrep</b></span> au lieu du double appel à <span class="application">grep</span> :</p><a name="BId-cmdutils-pl16"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting"># fgrep -f ./sequences.txt /var/log/mail/info</pre></td></tr></table><p><a name="BIdNEW-cmdutils-pa148"></a>Le fichier <tt class="filename">./sequences.txt</tt> peut contenir autant de séquences de filtrage que vous le souhaitez. Chacune d'elles doit se trouver sur une nouvelle ligne. Par exemple, pour sélectionner les messages correctement envoyés à <tt class="literal">pierre@mandrakesoft.com</tt>, il suffira de rajouter cette adresse dans notre fichier <tt class="filename">./sequences.txt</tt> et lancer cette commande :</p><a name="BId-cmdutils-pl17"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting"># echo 'pierre@mandrakesoft.com' >>./sequences.txt</pre></td></tr></table><p><a name="BId-cmdutils-pa25"></a>Il est évident que vous pouvez combiner <span class="application">grep</span> avec <span><b class="command">tail</b></span> et <span><b class="command">head</b></span>. Si nous souhaitons trouver l'avant-dernier message envoyé à Pierre, nous tapons :</p><a name="BId-cmdutils-pl18"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting"># fgrep -f ./sequences.txt /var/log/mail/info | tail -n2 | head -n1</pre></td></tr></table><p><a name="BIdNEW-cmdutils-pa149"></a>Nous appliquons ici le filtre construit précédemment et dirigeons le résultat dans un tube pour les commandes <span><b class="command">tail</b></span> et <span><b class="command">head</b></span>. Elles se chargent de sélectionner l'avant-dernière ligne des données reçues.</p></div><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a name="command-wc"></a>wc : compter des éléments de fichier</h3></div></div><div></div></div><p><a name="BId-cmdutils-pa26"></a>la commande <span><b class="command">wc</b></span> (<span class="foreignphrase"><i class="foreignphrase">Word Count</i></span> : compteur de mots) est utilisée pour compter le nombre de lignes et de mots d'un fichier. Elle peut aussi servir à compter le nombre d'octets, de caractères, et la longueur de la ligne la plus longue. Sa syntaxe est :</p><a name="BId-cmdutils-sc4"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">wc [option(s)] [fichier(s)]</pre></td></tr></table><p><a name="BId-cmdutils-pa27"></a>Les options suivantes sont particulièrement utiles :</p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-cmdutils-pa28"></a><tt class="option">-l</tt>: affiche le nombre de lignes ;</p></li><li><p><a name="BId-cmdutils-pa29"></a><tt class="option">-w</tt>: affiche le nombre de mots ;</p></li><li><p><a name="BId-cmdutils-pa30"></a><tt class="option">-m</tt>: affiche le nombre total de caractères;</p></li><li><p><a name="BId-cmdutils-pa31"></a><tt class="option">-c</tt>: affiche le nombre total d'octets ;</p></li><li><p><a name="BId-cmdutils-pa32"></a><tt class="option">-L</tt>: affiche la longueur de la plus longue ligne du texte d'entrée.</p></li></ul></div><p><a name="BId-cmdutils-pa33"></a>la commande <span><b class="command">wc</b></span> affiche par défaut le nombre de lignes, mots et caractères du fichier fourni. Voici quelques exemples :</p><p><a name="BId-cmdutils-pa34"></a>Si nous souhaitons connaître le nombre d'utilisateurs sur notre système, nous pouvons taper :</p><a name="BId-cmdutils-pl19"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting">$wc -l /etc/passwd </pre></td></tr></table><p><a name="BId-cmdutils-pa35"></a>Si nous souhaitons connaître le nombre de processeurs sur notre système : </p><a name="BId-cmdutils-pl20"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting">$grep "model name" /proc/cpuinfo |wc -l</pre></td></tr></table><p><a name="BId-cmdutils-pa36"></a>Dans la section précédente, nous avons obtenu une liste de messages correspondant aux séquences du fichier <tt class="filename">./sequences.txt</tt>. Si nous souhaitons connaître le nombre de ces messages, nous pouvons rediriger les résultats de notre filtre dans un tube pour la commande <span><b class="command">wc</b></span> :</p><a name="BId-cmdutils-pl21"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting"># fgrep -f ./sequences.txt /var/log/mail/info | wc -l </pre></td></tr></table></div><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a name="command-sort"></a>sort: Trier le contenu de fichiers</h3></div></div><div></div></div><p><a name="BId-cmdutils-pa37"></a>Voici la syntaxe de cet utilitaire de tri très puissant<sup>[<a name="id2545052" href="#ftn.id2545052">17</a>]</sup>:</p><a name="BId-cmdutils-sc5"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">sort [option(s)] [fichier(s)]</pre></td></tr></table><p><a name="BId-cmdutils-pa39"></a>Considérons le tri du fichier <tt class="filename">/etc/passwd</tt>. Comme vous pouvez le voir :</p><a name="BId-cmdutils-pl22"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting">$ cat /etc/passwd</pre></td></tr></table><p><a name="BIdNEW-cmdutils-pa150"></a>Nous voulons le trier par champ <tt class="literal">login</tt> (nom d'utilisateur) :</p><a name="BId-cmdutils-pl23"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting">$ sort /etc/passwd </pre></td></tr></table><p><a name="BId-cmdutils-pa40"></a>La commande <span><b class="command">sort</b></span> trie les données par ordre croissant sur le premier champ (dans notre cas, le <tt class="literal">login</tt>) par défaut. Si nous voulons trier les données par ordre décroissant il faut utiliser l'option <tt class="option">-r</tt> :</p><a name="BId-cmdutils-pl24"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting">$ sort -r /etc/passwd </pre></td></tr></table><p><a name="BId-cmdutils-pa41"></a>Chaque utilisateur a son propre <tt class="literal">UID</tt> (identifiant numérique de l'utilisateur) écrit dans le fichier <tt class="filename">/etc/passwd</tt>. Trions donc les utilisateurs selon leur <tt class="literal">UID</tt> :</p><a name="BId-cmdutils-pl25"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting">$ sort /etc/passwd -t":" -k3 -n </pre></td></tr></table><p><a name="BIdNEW-cmdutils-pa151"></a>Nous avons utilisé ici les options suivantes de <span><b class="command">sort</b></span> :</p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-cmdutils-pa42"></a><tt class="option">-t":"</tt>: indique à <span><b class="command">sort</b></span> que le séparateur de champs est le symbole <tt class="literal">":"</tt> ;</p></li><li><p><a name="BId-cmdutils-pa43"></a><tt class="option">-k3</tt>: indique que le tri doit s'effectuer sur la troisième colonne ;</p></li><li><p><a name="BId-cmdutils-pa44"></a><tt class="option">-n</tt>: indique que le tri doit s'effectuer sur des données numériques et non pas alphabétiques.</p></li></ul></div><p><a name="BId-cmdutils-pa45"></a>Et par ordre décroissant :</p><a name="BId-cmdutils-pl26"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting">$ sort /etc/passwd -t":" -k3 -n -r </pre></td></tr></table><p><a name="BId-cmdutils-pa46"></a>Notez bien ces deux options importantes de <span><b class="command">sort</b></span> :</p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-cmdutils-pa47"></a><tt class="option">-u</tt>: fournit un ordre strict : les doublons sont écartés ;</p></li><li><p><a name="BId-cmdutils-pa48"></a><tt class="option">-f</tt>: ignore la casse (ne fait pas de différence entre minuscules et majuscules).</p></li></ul></div><p><a name="BId-cmdutils-pa49"></a>Enfin, si nous voulons trouver l'utilisateur ayant l'identifiant <tt class="literal">UID</tt> le plus élevé : <a name="BId-cmdutils-pl27"></a></p><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting">$ sort /etc/passwd -t":" -k3 -n |tail -n1</pre></td></tr></table><p> Nous trions le fichier <tt class="filename">/etc/passwd</tt> par ordre d'<tt class="literal">UID</tt> ascendant, et redirigeons le résultat sur un tube pour la commande <span><b class="command">tail</b></span> qui ne laisse passer que la première ligne.</p></div><div class="footnotes"><br><hr width="100" align="left"><div class="footnote"><p><sup>[<a name="ftn.id2543708" href="#id2543708">15</a>] </sup>Certains exemples de cette section sont basés sur des tâches réelles avec des fichiers journaux de certains services. Assurez-vous que le démon <span class="application">syslogd</span> soit lancé (il permet aux autres démons d'écrire leurs journaux), ainsi que le démon dont il est question (ici <span class="application">Postfix</span>) et que vous travaillez en tant que <tt class="literal">root</tt>. Vous pouvez quoi qu'il en soit toujours appliquer les exemples à d'autres fichiers.</p></div><div class="footnote"><p><sup>[<a name="ftn.id2543774" href="#id2543774">16</a>] </sup>Par exemple, le fichier <tt class="filename">/var/log/mail/info</tt> enregistre toutes les informations à propos des messages envoyés, messages rapatriés par les utilisateurs avec le protocole <tt class="systemitem">POP</tt>, etc.</p></div><div class="footnote"><p><sup>[<a name="ftn.id2545052" href="#id2545052">17</a>] </sup>Nous ne parlons que brièvement de <span><b class="command">sort</b></span> ici car des livres entiers pourraient être écrits sur le sujet.</p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="cmdutils.html">Précédent</a> </td><td width="20%" align="center"><a accesskey="u" href="cmdutils.html">Niveau supérieur</a></td><td width="40%" align="right"> <a accesskey="n" href="command-find.html">Suivant</a></td></tr><tr><td width="40%" align="left" valign="top">Chapitre 5. Les utilitaires en ligne de commande </td><td width="20%" align="center"><a accesskey="h" href="index.html">Sommaire</a></td><td width="40%" align="right" valign="top"> find : rechercher des fichiers selon certains critères</td></tr></table></div></body></html>