如何在'less'(GNU)中显示行号
Posted
技术标签:
【中文标题】如何在\'less\'(GNU)中显示行号【英文标题】:How to display line numbers in 'less' (GNU)如何在'less'(GNU)中显示行号 【发布时间】:2010-10-24 07:39:41 【问题描述】:让less在左栏中显示行号的命令是什么?
【问题讨论】:
less
是一个 linux 命令行实用程序,程序员非常常用来查看文本文件。在“程序员使用的工具”领域,这个问题对于 Stack Overflow 来说是绝对的话题,就像所有与使用 git
相关的问题都是话题一样。在搜索“少显示行号”时,它也是谷歌中的第一击。这个问题不应该被关闭。
@JohnDibling 这个问题更适合Unix & Linux Stack Exchange。仅仅因为less
被程序员使用并不能成为话题。铅笔也是“程序员使用的工具”,但是关于如何削铅笔的问题在这里不合适。
@augurar 我想你确实知道这里的工具是指软件工具。你故意断章取义地解释工具的含义。顺便说一句,我认为这个问题也适用于 Unix & Linux Stack Exchange,但它并不妨碍这个问题出现在 SO 上 :)
【参考方案1】:
如果您点击 = 并希望看到行号,但只看到字节数,那么行号将被关闭。点击 -n 将它们打开,并确保 $LESS
不包含“n”。
默认关闭行号(例如,设置LESS=n
)可以加快在超大文件中的搜索速度。如果您经常搜索大文件,但通常不关心您在哪一行,这会很方便。
我通常使用LESS=RSXin
运行(启用转义码,切掉长行,退出时不清除屏幕,在所有小写搜索中忽略大小写,默认情况下不计算行号)并且只使用 -n 或 -S 从内部 less
根据需要。
【讨论】:
【参考方案2】:命令行标志-N
或--LINE-NUMBERS
会导致显示中每行的开头显示一个行号。
您也可以在不退出less
的情况下通过键入-N<return>
来切换行号。可以通过这种方式切换less
的任何命令行选项。
【讨论】:
在 CentOS 5.3 中传递 -N 或 --LINE-NUMBERS 只会显示我的日期。但是在开始 less 后使用 -N 效果很好。【参考方案3】:您也可以在less
打开时按=
仅显示(在屏幕底部)有关当前屏幕的信息,包括行号,格式为:
myfile.txt lines 20530-20585/1816468 byte 1098945/116097872 1% (press RETURN)
所以这里例如,屏幕当前显示行20530-20585
,文件总共有1816468
行。
【讨论】:
【参考方案4】:来自manual:
-N 或 --LINE-NUMBERS 使行号显示在每个开头 显示中的行。
您还可以通过键入-N
来切换行号而无需退出。
可以通过这种方式切换less的任何命令行选项。
【讨论】:
当我减少一个大文件然后将“G”放到底部时,即使它没有显示行号,它也会显示“正在计算行号...(中断中止)”。我想知道如何在不退出并使用 -N 重新启动的情况下找出我所在的行。我正在承受惩罚。奖励在哪里? 哇,我已经看了几十次帮助,希望能找到答案。我一直忽略“-sed
为行号着色和选项-R
让less
显示颜色:cat -n file.txt | sed 's/^[ 0-9]*[0-9]/\o033[34m&\o033[0m/' | less -R
你也可以自定义LESSOPEN
... 干杯; )
感谢整体方法,@dirkgently!【参考方案5】:
您可以设置环境变量以始终将这些选项应用于所有较少的文件:
export LESS='-RS#3NM~g'
【讨论】:
Linealias less="LESS='-RS#3NM~g' less"
in .bashrc
完成了我的一天!谢谢!
非常欢迎对此咒语的解释:)
选项有: R = 更好地处理文件中的原始颜色代码。 S = 从屏幕上滚动长行而不是自动换行。 #3 = 一次向右/向左滚动 3 个位置。 N = 显示行号。 M = 更长的提示。 ~ = 文件以 ~ 结尾后不显示空白,空白不显示任何内容。 g = 使用 'g' 进行搜索时,仅突出显示当前匹配项而不是所有匹配项。
这也将行号分配给man
是否可以防止它并仅保留它用于文件?【参考方案6】:
您可以先通过cat -n
过滤文件,然后再通过管道传送到less
:
cat -n file.txt | less
或者,如果您的 less
版本支持它,-N
选项:
less -N file.txt
【讨论】:
你知道less的哪个版本不支持它? 我一般用nl代替cat -n以上是关于如何在'less'(GNU)中显示行号的主要内容,如果未能解决你的问题,请参考以下文章