如何在'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 重新启动的情况下找出我所在的行。我正在承受惩罚。奖励在哪里? 哇,我已经看了几十次帮助,希望能找到答案。我一直忽略“- 切换命令行选项 [参见下面的选项]。” ...这意味着您可以在 less 中键入“-N”。我为此烦恼了大约十年。美好时光! 是否可以用不同的颜色显示行号? 嗨@greg 你可以使用sed 为行号着色和选项-Rless 显示颜色:cat -n file.txt | sed 's/^[ 0-9]*[0-9]/\o033[34m&\o033[0m/' | less -R 你也可以自定义LESSOPEN... 干杯; ) 感谢整体方法,@dirkgently!【参考方案5】:

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

export LESS='-RS#3NM~g'

【讨论】:

Line alias 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)中显示行号的主要内容,如果未能解决你的问题,请参考以下文章

linux命令之less相关用法

linux命令之less相关用法

Linux基本命令之显示行号

17.实用指令-cat more less

less 分页显示文件内容

Linux下如何查看文档的内容