357 lines
8.9 KiB
Text
357 lines
8.9 KiB
Text
|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
|||
|
<!DOCTYPE html
|
|||
|
PUBLIC "-//ENS/Tuteurs//DTD TML 1//EN"
|
|||
|
"tuteurs://DTD/tml.dtd">
|
|||
|
<html>
|
|||
|
<head>
|
|||
|
<title>Pipes</title>
|
|||
|
</head>
|
|||
|
<body>
|
|||
|
|
|||
|
|
|||
|
<h1><em>Pipes</em>, jokers et redirections</h1>
|
|||
|
|
|||
|
|
|||
|
<h2><a name="cat">La commande <tt>cat</tt></a></h2>
|
|||
|
|
|||
|
|
|||
|
<p>On n'a pas trait<69> de la commande <tt>cat</tt> dans la page consacr<63>e aux
|
|||
|
commandes de base, parce que <tt>cat</tt> s'utilise le plus souvent avec des
|
|||
|
redirections.</p>
|
|||
|
|
|||
|
<ol>
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#cat1">&icone.solution;
|
|||
|
</a>
|
|||
|
Comment visualiser deux fichiers l'un apr<70>s l'autre <20> l'aide de la commande
|
|||
|
<tt>cat</tt><3E>?</li>
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#cat2">&icone.solution;
|
|||
|
</a>
|
|||
|
Comment faire une copie d'un fichier sans utiliser <tt>cp</tt> ni ouvrir
|
|||
|
d'<27>diteur de texte<74>?</li>
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#cat3">&icone.solution;
|
|||
|
</a>
|
|||
|
Utiliser <tt>cat</tt> pour <20>crire un peu de texte et mettre le r<>sultat
|
|||
|
dans un fichier <tt>notes</tt>.</li>
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#cat4">&icone.solution;
|
|||
|
</a>
|
|||
|
Quelle diff<66>rence y a-t-il entre
|
|||
|
<pre>
|
|||
|
cat bla blo > blu
|
|||
|
</pre>
|
|||
|
<p class="continue">et</p>
|
|||
|
<pre>
|
|||
|
cat bla blo >> blu
|
|||
|
</pre>
|
|||
|
|
|||
|
<p>
|
|||
|
Que se passe-t-il, pour chaque ligne, selon que le fichier <tt>blu</tt>
|
|||
|
existe ou n'existe pas<61>?</p> </li>
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#cat5">&icone.solution;
|
|||
|
</a>
|
|||
|
Comment obtenir un fichier <tt>blo</tt> qui corresponde <20> un fichier
|
|||
|
<tt>bla</tt> dont les lignes seraient d<>sormais num<75>rot<6F>es<65>?</li>
|
|||
|
|
|||
|
</ol>
|
|||
|
|
|||
|
<h2> <a name="jokers">Jokers et expressions r<>guli<6C>res</a> </h2>
|
|||
|
|
|||
|
<ol>
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#jokers1">&icone.solution;
|
|||
|
</a>
|
|||
|
Vous avez chez vous des fichiers appel<65>s <tt>essai1</tt>, <tt>essai2</tt>,
|
|||
|
<tt>essai3</tt> et <tt>essai4</tt>. Comment les effacer en une seule ligne
|
|||
|
de commande<64>?</li>
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#jokers2">&icone.solution;
|
|||
|
</a>
|
|||
|
Dans mon r<>pertoire d'accueil, j'ai un certain nombre de fichiers avec un
|
|||
|
suffixe <tt>.c</tt>. Je d<>sire les regrouper dans un r<>pertoire que
|
|||
|
j'appelerai <tt>C/</tt>. Quelles sont les commandes que je dois
|
|||
|
taper<EFBFBD>?</li>
|
|||
|
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#jokers3">&icone.solution;
|
|||
|
</a>
|
|||
|
Vous d<>sirez regrouper dans un r<>pertoire <tt>Rangement</tt> les fichiers
|
|||
|
dont le nom contient un caract<63>re minuscule suivi d'un caract<63>re majuscule.
|
|||
|
Quelle(s) est/sont la/les commande(s) <20> donner<65>?</li>
|
|||
|
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#jokers4">&icone.solution;
|
|||
|
</a>
|
|||
|
M<EFBFBD>me chose avec les fichiers dont le nom contient trois voyelles <20> la
|
|||
|
suite.</li>
|
|||
|
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#jokers5">&icone.solution;
|
|||
|
</a>
|
|||
|
En utilisant <tt>ls</tt> et <tt>grep</tt>, affichez la liste des fichiers
|
|||
|
dans <tt>/bin</tt> dont le nom<6F>:
|
|||
|
|
|||
|
<ul>
|
|||
|
|
|||
|
<li> Commence par <20>a<EFBFBD> et dont la deuxi<78>me lettre est <20>s<EFBFBD> ou <20>t<EFBFBD>;</li>
|
|||
|
|
|||
|
<li> Contient <20>un<75> et se termine par <20>t<EFBFBD>;</li>
|
|||
|
|
|||
|
<li> Contient <20>gre<72> ou <20>st<73>.</li>
|
|||
|
|
|||
|
<li> Contient exactement deux lettres <20>m<EFBFBD>;</li>
|
|||
|
|
|||
|
<li> Contient au moins deux lettres <20>m<EFBFBD>;</li>
|
|||
|
|
|||
|
<li> Contient au moins quatre caract<63>res et aucun chiffre;</li>
|
|||
|
|
|||
|
<li> Est constitu<74> de deux lettres exactement;</li>
|
|||
|
|
|||
|
<li> Commence et finit par un chiffre.</li>
|
|||
|
|
|||
|
</ul></li>
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#jokers6">&icone.solution;
|
|||
|
</a>
|
|||
|
Comment <20>liminer les lignes vides dans un fichier<65>? Comment <20>liminer
|
|||
|
les lignes ne contenant que des blancs<63>?</li>
|
|||
|
|
|||
|
</ol>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<h2><a name="germinal">Exercices sur <em>Germinal</em></a></h2>
|
|||
|
|
|||
|
|
|||
|
<ol>
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#germinal1">&icone.solution;
|
|||
|
</a> Combien de
|
|||
|
fois le mot <20>mine<6E> appara<72>t dans chaque chapitre de la premi<6D>re partie de
|
|||
|
<em>Germinal</em><3E>?</li>
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#germinal2">&icone.solution;
|
|||
|
</a>Combien y
|
|||
|
a-t-il de lignes blanches dans <tt>zola1.txt</tt><3E>?</li>
|
|||
|
|
|||
|
</ol>
|
|||
|
|
|||
|
|
|||
|
<h2><a name="headtail"><tt>head</tt> et <tt>tail</tt></a></h2>
|
|||
|
|
|||
|
|
|||
|
<ol>
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#headtail1">&icone.solution;
|
|||
|
</a> Affichez
|
|||
|
les 15 premi<6D>res lignes du fichier <tt>/etc/hosts</tt>, les 15 derni<6E>res
|
|||
|
lignes, toutes les lignes <20> partir de la quinzi<7A>me, les lignes 15 <20> 20.
|
|||
|
|
|||
|
<div class="attention">
|
|||
|
<h1>&icone.attention;<3B>Attention<6F>&icone.attention;</h1>
|
|||
|
Placez-vous sur clipper pour faire cet exercice. En effet, les
|
|||
|
<tt>/etc/hosts</tt> des autres machines sont beaucoup plus petits (en
|
|||
|
particulier peuvent faire moins de 15 lignes).
|
|||
|
</div></li>
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#headtail2">&icone.solution;
|
|||
|
</a> R<>cup<75>rer
|
|||
|
les lignes 5 <20> 9 d'un fichier de 12 lignes.</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#headtail4">&icone.solution;
|
|||
|
</a> Comment
|
|||
|
afficher la cinqui<75>me ligne d'un fichier<65>?</li>
|
|||
|
|
|||
|
</ol>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<h2><a name="syst">Filtres et redirections</a></h2>
|
|||
|
|
|||
|
|
|||
|
<ol>
|
|||
|
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#syst1">&icone.solution;
|
|||
|
</a>
|
|||
|
Cr<EFBFBD>ez un fichier dont chaque ligne commence par un chiffre, suivi d'un
|
|||
|
slash (<tt>/</tt>), puis d'un ou plusieurs mots.
|
|||
|
|
|||
|
<ol>
|
|||
|
|
|||
|
<li> Affichez les lignes de ce fichier tri<72>es en ordre croissant, suivant
|
|||
|
le nombre plac<61> en d<>but de ligne;</li>
|
|||
|
|
|||
|
<li> <20>liminez de chaque ligne le chiffre et le caract<63>re <20><tt>/</tt><3E>;</li>
|
|||
|
|
|||
|
<li> Triez ces lignes par ordre alphab<61>tique inverse.</li>
|
|||
|
|
|||
|
</ol></li>
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#syst2">&icone.solution;
|
|||
|
</a> Combien de
|
|||
|
fichiers de configuration avez-vous<75>?</li>
|
|||
|
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#syst3">&icone.solution;
|
|||
|
</a> Combien de
|
|||
|
r<EFBFBD>pertoires de configuration avez-vous<75>?</li>
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#syst4">&icone.solution;
|
|||
|
</a>
|
|||
|
Comment mettre dans un fichier la liste de tous les fichiers de
|
|||
|
l'arborescence <20> partir du r<>pertoire courant<6E>?</li>
|
|||
|
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#syst5">&icone.solution;
|
|||
|
</a> Cr<43>ez un
|
|||
|
fichier <tt>liste</tt> contenant la liste de tous vos fichiers, avec leur
|
|||
|
taille, leurs droits, etc.</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#syst6">&icone.solution;
|
|||
|
</a>
|
|||
|
Comment afficher uniquement les fichiers du r<>pertoire courant qui sont des
|
|||
|
liens symboliques<65>?</li>
|
|||
|
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#syst7">&icone.solution;
|
|||
|
</a> Combien de
|
|||
|
lignes contiennent le mot <20><em>file</em><3E> dans la page de man de
|
|||
|
<tt>syst</tt><3E>?</li>
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#syst8">&icone.solution;
|
|||
|
</a> Quels sont les
|
|||
|
dix plus gros fichiers de <tt>/usr/bin/</tt><3E>?</li>
|
|||
|
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#syst9">&icone.solution;
|
|||
|
</a>
|
|||
|
Pour chaque ligne du fichier <tt>/etc/hosts</tt>, affichez<65>:
|
|||
|
|
|||
|
<ul>
|
|||
|
|
|||
|
<li> Le cinqui<75>me caract<63>re;</li>
|
|||
|
|
|||
|
<li> Les caract<63>res 5 <20> 10, et le treizi<7A>me;</li>
|
|||
|
|
|||
|
<li> Tous les caract<63>res <20> partir du quinzi<7A>me.</li>
|
|||
|
|
|||
|
</ul></li>
|
|||
|
|
|||
|
</ol>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<h2><a name="yp">Exercices sur les pages jaunes</a></h2>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<ol>
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#yp2">&icone.solution;
|
|||
|
</a>Combien de
|
|||
|
personnes de la promotion 1996 ont un login commen<65>ant par <20>l<EFBFBD><6C>?</li>
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#yp3">&icone.solution;
|
|||
|
</a>Est-ce que des
|
|||
|
gens des promotions de la d<>cennie 1980 ont encore un compte sur clipper<65>?</li>
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#yp4">&icone.solution;
|
|||
|
</a>Combien y a-t-il
|
|||
|
de comptes d'<27>l<EFBFBD>ves, magist<73>riens, etc (appartenant <20> une promotion) sur
|
|||
|
clipper<EFBFBD>?</li>
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#yp5">&icone.solution;
|
|||
|
</a>Classer les
|
|||
|
comptes de ces utilisateurs par num<75>ro d'UID.</li>
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#yp6">&icone.solution;
|
|||
|
</a>
|
|||
|
Affichez le login des personnes ayant <tt>zsh</tt> comme shell de login.</li>
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#yp7">&icone.solution;
|
|||
|
</a>
|
|||
|
Affichez le nom et le pr<70>nom des personnes ayant un compte sur
|
|||
|
<tt>clipper</tt>, et dont le nom de famille contient au moins 2 voyelles
|
|||
|
c<EFBFBD>te <20> c<>te. Compter ces personnes.</li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
</ol>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<h2><a name="divers">Divers</a></h2>
|
|||
|
|
|||
|
<ol>
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#divers1">&icone.solution;
|
|||
|
</a>
|
|||
|
Comment conserver les informations concernant le disque dans un
|
|||
|
fichier<EFBFBD>?</li>
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#divers3">&icone.solution;
|
|||
|
</a>
|
|||
|
Comment conna<6E>tre la derni<6E>re date de connexion au syst<73>me d'un utilisateur
|
|||
|
de login <tt>martin</tt><3E>?</li>
|
|||
|
|
|||
|
<!-- <p>
|
|||
|
<li> <a href="solutions/enchainer-sol.html#divers4">&icone.solution;
|
|||
|
</a>
|
|||
|
Cr<EFBFBD>ez chez vous un fichier contenant des mots (sur le mod<6F>le d'un carnet de
|
|||
|
vocabulaire), un par ligne, avec des r<>p<EFBFBD>titions; par exemple<6C>:
|
|||
|
|
|||
|
<pre>
|
|||
|
Pomme
|
|||
|
Poire
|
|||
|
Cassis
|
|||
|
Pomme
|
|||
|
Fraise
|
|||
|
Orange
|
|||
|
Citron
|
|||
|
</pre>
|
|||
|
|
|||
|
Utilisez la commande <tt>uniq</tt><3E>:
|
|||
|
|
|||
|
<ul>
|
|||
|
<li> Pour <20>liminer les lignes redondantes (dans notre exemple, la ligne
|
|||
|
<EFBFBD>Pomme<EFBFBD> en double exemplaire);</li>
|
|||
|
|
|||
|
<li> Pour donner le nombre d'occurrences de chaque ligne;</li>
|
|||
|
|
|||
|
<li> Pour ne faire appara<72>tre que le ou les mots redondants avec le nombre
|
|||
|
d'occurrences; ici, ce sera<72>: <br>
|
|||
|
|
|||
|
<tt> 2 Pomme </tt>
|
|||
|
|
|||
|
|
|||
|
</ul>
|
|||
|
!-->
|
|||
|
|
|||
|
<li> <a href="solutions/enchainer-sol.html#divers5">&icone.solution;
|
|||
|
</a>
|
|||
|
Affichez le type des fichiers <tt>/etc/passwd</tt>,
|
|||
|
<tt>/usr/include/stdio.h</tt>, <tt>/bin/ls</tt> et de votre r<>pertoire de
|
|||
|
travail.</li>
|
|||
|
|
|||
|
</ol>
|
|||
|
|
|||
|
<div class="metainformation">
|
|||
|
Auteur<75>: Anonyme, Jo<4A>l Riou. Derni<6E>re modification le 2002-12-08.
|
|||
|
</div>
|
|||
|
|
|||
|
</body>
|
|||
|
</html>
|
|||
|
|
|||
|
|