如何以较少(GNU)显示行号?

Ale*_* S. 622 unix gnu

有人知道在左栏中减少显示行数的命令吗?

dir*_*tly 920

手册:

-N或--LINE-NUMBERS使行号显示在显示中每行的开头.

您还可以通过键入来切换行号而不会减少-N.

可以通过这种方式切换任何较少的命令行选项.

  • 哇,我已经看了几十次帮助,希望找到答案.我一直忽略" - <flag>切换命令行选项[见下面的OPTIONS]." ...这意味着你可以从less中输入"-N".十多年来,我一直对此感到恼火.美好时光! (88认同)
  • 当我减少一个巨大的文件然后"G"到底部时,它会显示"计算行号...(中断到中止)",即使它没有显示行号.我想知道如何在不退出和重新启动-N的情况下找出我所在的行.我受到了点球.奖励在哪里? (6认同)
  • 嗨@greg您可以使用`sed`来为行号着色,使用`-R`选项让`less`显示颜色:`cat -n file.txt | sed's/^ [0-9]*[0-9] /\o033 [34m&\ o033 [0m /'| less -R`你也可以自定义[`LESSOPEN`](http://www.cs.vassar.edu/cgi-bin/man/man2html?lesspipe+1)...干杯;) (3认同)
  • 请注意,“less -N &lt;文件名&gt;”有效,但“less &lt;文件名&gt; -N”无效。 (3认同)
  • 是否可以以不同的颜色显示行号? (2认同)
  • @BrunoBronosky您可以随时按=键,而在less中,它会显示当前显示的行范围加上总大小(适用于文件,而不是流),如下所示:“Filename.txt第1行- 50/300 字节 4021/26976 15%(按 RETURN)” (2认同)

Dan*_*ich 144

您也可以=less打开时按,只显示(在屏幕底部)有关当前屏幕的信息,包括行号,格式如下:

myfile.txt lines 20530-20585/1816468 byte 1098945/116097872 1%  (press RETURN)
Run Code Online (Sandbox Code Playgroud)

所以这里例如,屏幕当前显示行20530-20585,并且文件总共有1816468行.


Gre*_*ill 43

您可以cat -n在管道到之前过滤文件less:

cat -n file.txt | less
Run Code Online (Sandbox Code Playgroud)

或者,如果您的版本less支持它,则-N选项:

less -N file.txt
Run Code Online (Sandbox Code Playgroud)

  • 你知道哪个版本少,不支持它? (3认同)

sga*_*gan 31

您可以设置环境变量以始终将这些选项应用于所有less'd文件:

export LESS='-RS#3NM~g'
Run Code Online (Sandbox Code Playgroud)

  • 选项是: R = 更好地处理文件中的原始颜色代码。S = 从屏幕上滚动长行而不是自动换行。#3 = 一次向右/向左滚动 3 个位置。N = 显示行号。M = 更长的提示。~ = 文件以 ~ 结尾后不显示空白,空白不显示任何内容。g = 使用 'g' 进行搜索时,仅突出显示当前匹配项而不是所有匹配项。 (4认同)
  • 非常欢迎对这个咒语的解释:) (3认同)
  • 在`.bashrc`中行`alias less ="LESS =' - RS#3NM~g'less"`做了我的一天!谢谢! (2认同)

Mat*_*ula 16

命令行标志-N--LINE-NUMBERS使行号显示在显示中每行的开头.

您还可以通过键入来切换行号而不会减少-N<return>.它可以用这种方式切换任何较少的命令行选项.


小智 15

如果您点击=并希望看到行号,但只看到字节数,则会关闭行号.点击-n将其打开,并确保$LESS不包含'n'.

默认情况下关闭行号(例如设置LESS=n)可加快非常大的文件中的搜索速度.如果你经常搜索大文件但通常不关心你在哪一行,那么很方便.

我通常运行LESS=RSXin(启用转义码,长线切断,退出时不清除屏幕,忽略所有小写搜索的情况,默认情况下不计算行数)并且仅根据需要使用-n-S从内部使用.