如何使用模式修饰符进行不区分大小写的搜索?

似乎做到这一点的唯一方法是在最初运行较少时传入-i参数。有谁知道什么秘密的破解方法可以让这种东西工作吗

/something to search for/i
93108 次浏览

你也可以在less运行时键入命令-I。它切换大小写敏感性的搜索。

你也可以设置环境变量LESS

我使用LESS=-Ri,这样我就可以从grep中抽取彩色输出,并保持ANSI颜色序列。

我发现less的另一个很少使用的特性是以+F作为参数开始(或在less中击中转变+F)。这将导致它跟随你打开的文件,与tail -f <file>的方式相同。如果您正在从应用程序中监视日志文件,并且可能想要回页(例如,如果它每秒生成100行日志),则非常方便。

附加到@Juha说:实际上-i打开了不区分大小写的smartcase,即如果你的搜索包含一个大写字母,那么搜索将是大小写敏感的,否则,它将是大小写敏感的。可以把它看作Vim中的:set smartcase

例如:使用-i,在` log,..'将匹配,而'Log'在'Log,..’不会匹配。

当使用-i flag时,确保完全用小写输入搜索字符串,因为如果任何字母是大写,那么它就是完全匹配的。

参见:less(1)的-I(大写i)标志来改变这种行为。

看起来你可以在每次搜索的基础上调用这个功能,如下所示:

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

参考文献