关于unix:如何使用模式修饰符少写不区分大小写?

关于unix:如何使用模式修饰符少写不区分大小写?

How do you do a case insensitive search using a pattern modifier using less?

似乎唯一的方法是在最初运行较少的时候传递-i参数。 有谁知道一些秘密的黑客使这种工作

1
/something to search for/i

您还可以在运行更少的命令时键入命令-I。它切换区分大小写进行搜索。


您还可以设置环境变量LESS

我使用LESS=-Ri,以便可以将grep的彩色输出泵入其中,并保持ANSI颜色顺序。

我发现的更少的另一个很少使用的功能是以+F作为参数开始的(或者在更少的时候按SHIFT + F)。这将导致它以与tail -f 相同的方式跟踪您打开的文件。如果您正在查看来自应用程序的日志文件,并且可能想要分页备份(例如,如果它每秒产生100行日志记录,则非常方便)。


@Juha所说的内容的附加内容:实际上-I使用SmartCasing启用不区分大小写的功能,即,如果您的搜索包含大写字母,则搜索将区分大小写,否则,将不区分大小写。在Vim中将其视为:set smartcase

例如:使用-I,在" Log ..."中搜索" log"将匹配,而在" log ..."中搜索" Log"将不匹配。


看来您可以在每次搜索的基础上召唤此功能,如下所示:

1
less prompt> /search string/-i

此选项在LESS的交互式帮助中,您可以通过h进行访问:

1
2
3
4
5
6
7
less prompt> h
...
  -i  ........  --ignore-case
                  Ignore case in searches that do not contain uppercase.
  -I  ........  --IGNORE-CASE
                  Ignore case in all searches.
...

我还没有进行广泛检查,但是MacOS上LESS版本487中的帮助以及其他Linux发行版都将该选项列出为可用。

在MacOS上,您还可以通过brew安装更新版本的LESS

1
2
3
4
$ brew install less
$ less --version
less 530 (POSIX regular expressions)
Copyright (C) 1984-2017  Mark Nudelman

参考

  • less始终不区分大小写

使用-i标志时,请确保完全以小写形式输入搜索字符串,因为如果有任何字母为大写字母,则表示其完全匹配。

另请参阅:less(1)的-I(大写i)标志可更改此行为。


推荐阅读