如何使用 less 使用模式修饰符进行不区分大小写的搜索?
Posted
技术标签:
【中文标题】如何使用 less 使用模式修饰符进行不区分大小写的搜索?【英文标题】:How do you do a case insensitive search using a pattern modifier using less? 【发布时间】:2010-09-06 05:17:11 【问题描述】:似乎唯一的方法是在您最初运行较少时传递 -i 参数。有谁知道一些秘密的黑客来做这样的事情
/something to search for/i
【问题讨论】:
【参考方案1】:您还可以在 less 运行时键入命令 -I
。它为搜索切换区分大小写。
【讨论】:
-i 表示在不包含大写的搜索中忽略大小写,而 -I 在所有搜索中忽略大小写。 “在不包含大写的搜索中忽略大小写”在 vim 和 ack 中称为“智能大小写”。在这里添加这个是为了便于谷歌搜索。 @HelloGoodbye 你不“运行命令”只是输入它,我也被措辞弄糊涂了。-I
就像在字面上输入 -I
一样少打开。【参考方案2】:
也可以设置环境变量LESS
我使用LESS=-Ri
,这样我就可以将grep
的彩色输出泵入其中,并保持ANSI 颜色序列。
我发现的另一个很少使用的 less 功能是以 +F
作为参数开始它(或在 less 中按 SHIFT+F)。这会导致它跟随您打开的文件,就像tail -f <file>
一样。如果您正在查看来自应用程序的日志文件,并且可能希望进行分页备份(例如,如果它每秒生成 100 行日志记录),这将非常方便。
【讨论】:
跟随 less 比跟随 tail 有用得多。尤其是有很多动作的日志。 @Svish 你可以说less
更多:)
@MartinKonecny less
可能更多,但less
不是more
更不用说most
@sanmiguel 我不太了解,试过了,横向滚动真的很酷,谢谢
less
大于more
,most
大于less
| less
更多,但more
比more
更多,所以more
更少less
,所以如果您想要更少more
,请使用更多less
。【参考方案3】:
补充@Juha 所说的:实际上-i
使用SmartCasing 打开不区分大小写,即如果您的搜索包含大写字母,则搜索将区分大小写,否则将不区分大小写.把它想象成 Vim 中的:set smartcase
。
例如:使用 -i
,在 'Log,..' 中搜索 'log' 将匹配,而在 'log,..' 中搜索 'Log' 将不匹配。
【讨论】:
实际上,如果 any 字母,而不仅仅是第一个,是大写的,搜索将区分大小写。一个重要的区别(以及我更喜欢它的方式)。这也是 vim 的 smartcase 的工作原理。 在 Vim 中你也可以说/\clog
来切换到不区分大小写的搜索。【参考方案4】:
您似乎可以像这样在每次搜索的基础上调用此功能:
less prompt> /search string/-i
此选项位于less
的交互式帮助中,您可以通过h
访问:
less prompt> h
...
-i ........ --ignore-case
Ignore case in searches that do not contain uppercase.
-I ........ --IGNORE-CASE
Ignore case in all searches.
...
我没有仔细检查,但在 MacOS 和其他 Linux 发行版上的 less
版本 487 中的帮助列出了此选项可用。
在 MacOS 上,您还可以通过 brew
安装更新版本的 less
:
$ brew install less
$ less --version
less 530 (POSIX regular expressions)
Copyright (C) 1984-2017 Mark Nudelman
参考文献
less is always case-insensitive【讨论】:
@IlikeSerena - 这可能是less
特定版本的问题。
@slm which less
你试过这个吗?不要在我的less 458 (GNU regular expressions)
上工作(aptitude 说less 458-2
FWIW)
@hdl - 我目前无法访问系统,但我使用的是 Fedora 19/20 中包含的 less
的任何版本。
@slm 谢谢,可能是比 458-2 更新的版本,例如 458-6,因为根据koji.fedoraproject.org/koji/packageinfo?packageID=759,这个特定版本是在 2014 年 2 月 10 日为 Fedora 构建的,因为你发布了这是 2014 年 2 月 22 日...
不适用于少于 487(POSIX 正则表达式)的 mac 【参考方案5】:
使用-i标志时,一定要完整输入小写的搜索字符串,因为如果任何字母是大写的,那么它就是完全匹配的。
另请参见:less(1) 的 -I(大写 i)标志以更改此行为。
【讨论】:
以上是关于如何使用 less 使用模式修饰符进行不区分大小写的搜索?的主要内容,如果未能解决你的问题,请参考以下文章