Comment afficher les numéros de ligne en «moins» (GNU)

660

Quelle est la commande à faire moins les numéros de ligne d'affichage dans la colonne de gauche?

Alex. S.
la source
80
lessest un utilitaire de ligne de commande Linux, et est très couramment utilisé par les programmeurs pour afficher les fichiers texte. Cette question est solidement sur le sujet de Stack Overflow dans le domaine des "outils utilisés par les programmeurs", tout comme toutes les questions relatives à l'utilisation gitsont sur le sujet. C'est également le premier succès de Google lors de la recherche de "moins de numéros de ligne". Cette question ne doit pas être close.
John Dibling
5
@JohnDibling La question est plus appropriée pour Unix et Linux Stack Exchange . Ce lessn'est pas parce qu'il est utilisé par les programmeurs qu'il arrive sur le sujet. Les crayons sont aussi des "outils utilisés par les programmeurs" mais une question sur la façon de tailler un crayon ne serait pas appropriée ici.
augurar
17
@augurar Je pense que vous N'ÊTES savoir que les outils signifie ici des outils logiciels . Vous interprétez délibérément la signification des outils hors du contexte. Soit dit en passant, je pense également que cette question est appropriée pour Unix et Linux Stack Exchange, mais cela n'empêche pas cette question d'être ici sur SO :)
Gab 是 好人

Réponses:

979

Du manuel :

-N ou --LINE-NUMBERS Permet d'afficher un numéro de ligne au début de chaque ligne de l'affichage.

Vous pouvez également basculer les numéros de ligne sans quitter moins en tapant -N.

Il est possible de basculer l'une des options de ligne de commande de less de cette manière.

dirkgently
la source
6
Lorsque je réduis un gros fichier, puis "G" vers le bas, il dit "Calcul des numéros de ligne ... (interruption pour abandonner)" même s'il n'affiche pas les numéros de ligne. Je voudrais savoir comment je suis sur la ligne sans quitter et relancer avec -N. Je subis la pénalité. Où est la récompense?
Bruno Bronosky
93
wow, j'ai regardé l'aide pour des dizaines de fois en espérant trouver la réponse à cela. J'ai toujours ignoré "- <flag> Basculer une option de ligne de commande [voir OPTIONS ci-dessous]." ... ce qui signifie que vous pouvez taper "-N" de moins en moins. Cela m'ennuie depuis une dizaine d'années. Bon temps!
Bruno Bronosky
2
est-il possible d'afficher les numéros de ligne dans une couleur différente?
greg
3
Salut @greg Vous pouvez utiliser sedpour coloriser les numéros de ligne et l'option -Rpour laisser lessafficher les couleurs: cat -n file.txt | sed 's/^[ 0-9]*[0-9]/\o033[34m&\o033[0m/' | less -R Vous pouvez également personnaliser LESSOPEN... Cheers;)
olibre
1
Appuyez sur ENTER / RETURN si vous essayez de basculer. Après avoir tapé -n ou -N tout en utilisant moins, vous devrez peut-être également appuyer dessus après pour appliquer les modifications. Il le dit même en bas, mais mon cerveau n'a pas connecté les points parce que j'ai supposé que ce serait instantané et j'ai continué à taper -N et je me demandais pourquoi les chiffres ne se montraient jamais.
abelito
146

Vous pouvez également appuyer sur =tandis que lessest ouvert pour afficher simplement (en bas de l'écran) des informations sur l'écran actuel, y compris les numéros de ligne, avec le format:

myfile.txt lines 20530-20585/1816468 byte 1098945/116097872 1%  (press RETURN)

Donc ici par exemple, l'écran montrait actuellement des lignes 20530-20585, et les fichiers ont un total de 1816468lignes.

Daniel Hershcovich
la source
44

Vous pouvez filtrer le fichier cat -navant de passer à less:

cat -n file.txt | less

Ou, si votre version de le lessprend en charge, l' -Noption:

less -N file.txt
Greg Hewgill
la source
4
Quelle (s) version (s) de moins connaissez-vous qui ne la prend pas en charge?
Aaron Hall
J'utilise habituellement nl au lieu de cat -n
ychaouche
32

Vous pouvez définir une variable d'environnement pour que ces options s'appliquent toujours à tous les fichiers inférieurs:

export LESS='-RS#3NM~g'
sgargan
la source
2
Line alias less="LESS='-RS#3NM~g' less"in a .bashrcfait ma journée! Merci!
Jury
4
Une explication de cette incantation serait la bienvenue :)
minexew
3
Les options sont: R = meilleure gestion des codes couleurs bruts dans les fichiers. S = Faites défiler les longues lignes hors de l'écran au lieu du retour à la ligne. # 3 = faites défiler vers la droite / gauche de 3 positions à la fois. N = affiche les numéros de ligne. M = invites plus longues. ~ = Au lieu d'afficher un espace vide après la fin d'un fichier avec ~, n'affiche rien pour l'espace vide. g = lorsque vous effectuez une recherche avec «g», mettez uniquement en surbrillance la correspondance actuelle au lieu de toutes les correspondances.
Bryan
17

La ligne de commande signale -Nou --LINE-NUMBERSfait afficher un numéro de ligne au début de chaque ligne dans l'affichage.

Vous pouvez également basculer les numéros de ligne sans quitter lessen tapant -N<return>. Il est possible de basculer l'une des lessoptions de ligne de commande de cette manière.

Matthew Jaskula
la source
1
Passer -N ou --LINE-NUMBERS affiche uniquement la date pour moi dans CentOS 5.3. Cependant, utiliser -N après avoir démarré moins fonctionne correctement.
Mike Miller
15

Si vous frappez = et vous attendez à voir des numéros de ligne, mais que vous ne voyez que le nombre d'octets, les numéros de ligne sont désactivés. Appuyez -npour les allumer et assurez-vous$LESS ne pas inclure «n».

Désactiver les numéros de ligne par défaut (par exemple, définir LESS=n ) accélère les recherches dans les très gros fichiers. C'est pratique si vous recherchez fréquemment dans de gros fichiers, mais vous ne vous souciez généralement pas de la ligne sur laquelle vous vous trouvez.

Je cours généralement avec LESS=RSXin(codes d'échappement activés, longues lignes coupées, ne pas effacer l'écran à la sortie, ignorer la casse dans toutes les recherches en minuscules et aucun numéro de ligne par défaut) et n'utiliser que -nou -Sde l'intérieur lessselon les besoins.

Rob Flickenger
la source