Exercice sur la commande less
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 ou H pour afficher une page d'aide. On s'y déplace comme dans less (flèches, ^D, ^F, ^B, ^P, SPC, j, k...). Pour quitter l'aide, ce sont les mêmes commandes que pour quitter less : 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 fichiers toto, bla et blu, on tape :
less toto bla bluPour 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 fichier rapport 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 commande less; par exemple, pour chercher le mot «toto» dans le fichier rapport, on tape :
less -p toto rapportOn 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 :
/motPour 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 taper N. Évidemment, quand on cherche un motif avec ?, n remonte dans le texte et N 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 chercher toto alors qu'on se trouve à la fin du fichier, on tape :
/^FLe 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 chercher toTo 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 rapportless -ip toto rapportless -i +/toto rapportless -i +/TOTO rapportless ne fera pas la différence entre les majuscules et les minuscules, et je trouverai toto comme TOTO. Bien sûr, c'est la même chose si je lance less 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çant less comme ci-dessus, je cherche le motif Toto, je ne trouverai que Toto et pas TOTO par exemple. Pour contourner cette restriction, il faut lancer less 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 tape ESC n pour chercher en avant, et ESC 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 de ed (et de vi par conséquent).