如何实现使用less命令在终端中进行搜索呢

电子说

1.3w人已加入

描述

less 命令非常适合在终端中查看文本文件的内容,且不会使屏幕看起来很混乱而至眼花缭乱。

如果你正在查看一个非常大的文件,并且想在其中查找一个特定的文本,可以在 less 命令中执行搜索,而不需要手动执行。我们今天来介绍下如何实现。

使用 less 命令进行搜索

首先使用 less 命令打开要查看的文件,按下 斜杠 / 键 ,然后输入要搜索的表达式(或者字符串),再然后按 回车键

VIM

它将会从你当前的位置开始向前搜索,定位到第一个找到的匹配项。被找到的匹配的内容会被突出显示。

VIM

按 n 键可以移动到下一个被找到的匹配项,按 N(shift+n)键可以返回到上一个被找到的匹配项。

你还可以使用空格键和 b 键在页面上下移动,匹配项(如果有)会被高亮显示。

如果没有找到被搜索的内容,在底部会看到 “Pattern not found (press RETURN)”:

VIM

注:如果想要执行 向后搜索 ,可以使用 ?pattern 来代替 /pattern ,它会从当前位置开始向后搜索。

执行不区分大小写的搜索

默认情况下,less 中的搜索是区分大小写的。要执行不区分大小写的搜索,可以在 less 视图中输入 -I 选项:

-I

在开始搜索之前,或者搜索中使用,其结果是一样的。

VIM

实际上,它是切换了是否区分大小写的搜索;再按一次,搜索将再次区分大小写。

另外,可以使用小写的 i 来代替 I,但是如果要搜索的字符串中含有大写字母,i 是不起作用的。所以最好使用大写的 I。

如果需要,在使用 less 命令的时候就启用不区分大小写的模式:

less -I filename

注:可以使用 /!pattern 来搜索与表达式不匹配的行。

只显示匹配行

如果觉得使用 n 或者 N 来前后查看匹配项比较麻烦,可以通过使用 &pattern 来代替 /pattern 执行搜索,这样可以在 less 命令中只显示匹配行:

&pattern

与 /pattern 不同,使用 &pattern 后不会将匹配项高亮显示,它只显示包含匹配内容的行:

VIM

可以使用箭头键在各行之间移动,在底部会显示行号。但这行号是不连续的,因为终端中只显示了匹配行。

在使用 less 命令的同时启动搜索

事实上,在使用 less 命令打开文件后,即可进行搜索:

less -p pattern filename

还可以通过添加 -I 选项来执行不区分大小写的搜索:

less -Ip pattern filename

在这里需要注意,上述选项是有先后顺序的,如果使用 -pI ,则不会起作用。

因为 less 只是一个查看器,所以它不能像 vim 那样进行查找替换。在使用 less 查找内容的时候,除了我们上述介绍的,还有其他的一些功能,大家感兴趣的可以查看一下 man 手册。

审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐
  • VIM

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分