Exercice sur la commande less
Rédigé par GC Team, Publié le 19 Août 2010, Mise à jour le Samedi, 17 Décembre 2022 20:21![](/images/thumb/41/default.png)
On aborde ici less
, qui est une version plus élaborée de more
; ce dernier est toujours détaillé dans dans les ouvrages sur Unix, et de fait il est toujours présent sur ces systèmes, ce qui n'est pas forcément vrai pour less
(qui est quand même très courant). more
est beaucoup plus rudimentaire, alors que less
a beaucoup de fonctionnalités appréciables : vidéo inverse pour les motifs recherchés, déplacements en avant et en arrière pour la recherche, etc.
-
Comment fait-on pour obtenir une page d'aide avec
less
?On tape
h
ouH
pour afficher une page d'aide. On s'y déplace comme dansless
(flèches,^D
,^F
,^B
,^P
,SPC
,j
,k
...). Pour quitter l'aide, ce sont les mêmes commandes que pour quitterless
:q
,Q
,:q
,:Q
,ZZ
. -
Comment examiner plusieurs fichiers à la suite ? Comment passe-t-on au suivant ? Comment revient-on au précédent ?
Il suffit de donner plusieurs fichiers en argument à la commande
less
; par exemple, pour examiner sucessivement les fichierstoto
,bla
etblu
, on tape :less toto bla blu
Pour passer au fichier suivant, on tape
:n
(next); pour revenir au fichier précédent, on tape:p
(previous).:x
permet de revenir au premier fichier spécifié. -
Quelles sont les commandes différentes qui permettent de quitter
less
?Ce sont :
q
,Q
,:q
,:Q
,ZZ
. -
Comment dire à
less
d'ouvrir le fichier en plaçant en haut de l'écran la ligne n ?On spécifie le numéro de la ligne après le signe
+
; par exemple, pour ouvrir le fichierrapport
sur la ligne 57, on tape :less +57 rapport
-
Comment dire à
less
d'ouvrir le fichier en plaçant en haut de l'écran la première ligne où apparaît un motif donné ?On utilise l'option
-p
de la commandeless
; par exemple, pour chercher le mot «toto» dans le fichierrapport
, on tape :less -p toto rapport
On peut aussi indiquer le motif recherché de la façon suivante :
less +/toto rapport
-
Quelles sont les deux commandes de
less
qui permettent de chercher un motif dans un fichier, respectivement après et avant la position courante ?Pour chercher un motif plus en avant dans le texte, on utilise le slash (barre oblique vers la droite :
/
). Par exemple :/mot
Pour chercher en arrière de la position courante, on utilise le point d'interrogation. Pour aller à la prochaine occurence du mot, il suffit de taper
n
(next). Pour aller à la précédente occurence du mot, il faut taperN
. Évidemment, quand on cherche un motif avec?
,n
remonte dans le texte etN
descend dans le texte.Une fois le début ou la fin du fichier atteint, la recherche s'arrête. On peut utiliser les expressions régulières.
-
Comment dire à
less
de chercher le mot à partir de la première ligne du fichier, et ce où que l'on soit dans le fichier ?Il faut taper
^F
après avoir tapé/
. En fait,^F
fait commencer la recherche au premier fichier dont on a donné le nom; quand il n'y en a qu'un seul, cela place de fait tout au début du fichier. Par exemple, pour cherchertoto
alors qu'on se trouve à la fin du fichier, on tape :/^F
Le prompt devient alors :
First-file /
et il n'y a plus qu'à taper le motif recherché.
-
Que se passe-t-il si l'on cherche le motif suivant : «toTo» en donnant l'option
-i
àless
? Quelle option faut-il mettre à la place de-i
pour cherchertoTo
tout en ignorant la casse des caractères ?L'option
-i
signifie ignorecase, c'est-à-dire ignorer la casse des caractères (différence entre majuscules et minuscules). Si donc je tape (au choix) :less -ip TOTO rapport less -ip toto rapport less -i +/toto rapport less -i +/TOTO rapport
less
ne fera pas la différence entre les majuscules et les minuscules, et je trouveraitoto
commeTOTO
. Bien sûr, c'est la même chose si je lanceless
avec l'option-i
et que je cherche ensuite le mot à l'intérieur du fichier avec/
ou?
.Mais l'option
-i
est invalidée si le motif recherché contient des majuscules et des minuscules : si, en lançantless
comme ci-dessus, je cherche le motifToto
, je ne trouverai queToto
et pasTOTO
par exemple. Pour contourner cette restriction, il faut lancerless
avec l'option-I
, qui est donc un ignorecase «robuste». -
Quelles sont les commandes qui permettent d'aller à la prochaine (resp. précédente) occurence du motif recherché à travers tous les fichiers édités ?
Pour aller à l'occurence suivante (resp. précédente) d'un motif dans un fichier, on utilise
n
(resp.N
). Pour faire la même opération mais sans passer manuellement de fichier en fichier, on tapeESC n
pour chercher en avant, etESC N
pour chercher en arrière.ESC
désigne bien sûr la touche d'échappement (Escape
). -
Comment chercher dans un fichier le caractère
/
?Le caractère
/
sert à chercher un mot dans le fichier. Si on tape//
less
répond :Pattern not found
. Il faut donc dire àless
de considérer le/
comme un caractère ordinaire, et pas comme un caractère spécial. Comme avec toutes les expressions régulières, c'est le backslash (barre oblique vers la gauche :\
) qui sert à cela. Pour chercher un/
, on tape donc :La page de man donne une liste de caractères qui sont spéciaux avec
/
et?
. Ces commandes de recherche utilisent les expressions régulières deed
(et devi
par conséquent).