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.
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.
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 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é.
less ?
Ce sont : q, Q, :q, :Q,
ZZ.
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
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 rapport
On peut aussi indiquer le motif recherché de la façon suivante :
less +/toto rapport
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 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.
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 :
/^F
Le prompt devient alors :
First-file /
et il n'y a plus qu'à taper le motif recherché.
-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 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 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».
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).
/ ?
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).