我只是尝试传递一个$
以更少开头的搜索模式:
less +/'\$l' myfile.pl
我得到了
There is no -l option ("less --help" for help)
阅读手册后,我尝试了备用-p
选项
less -p'\$l' myfile.pl
并得到同样的错误。
然后我发现,(nb 后面的空格-p
)
less -p '\$l' myfile.pl
有效,即打开文件没有错误消息并跳转到第一次出现的$l
.
长选项变体--pattern=$l
不起作用
less --pattern='\$l' myfile.pl
There is no -l option ("less --help" for help)
而空间而不是=
作品
less --pattern '\$l' myfile.pl
这是
less -V
less 458 (POSIX regular expressions)
Copyright (C) 1984-2012 Mark Nudelman
在 openSUSE Leap 42.3 上
现在的问题是:这是一个错误吗?
来自
man less
:然后我们需要同时避开反斜杠和美元,所以
这是由一个特性引起的。来自
man less
:所以你可以这样做:
首先,不区分大小写地
less
寻找。pattern
--use-backslash
可用于允许\
转义$
。现在,虽然它对
$LESS
变量有意义,但对于命令行上的选项参数来说意义不大。在这种情况下,它可以被视为您可能想要报告的错误。另请注意,该
$
处理仅在与包含选项相同的参数中发生时 发生,该选项解释了您的vs和vs$
之间的差异导致混淆和更多理由认为它可能被视为错误。-p '\$l'
-p'\$l'
--pattern '\$l'
--pattern='\$l'
请注意,您还会遇到以下问题:
在哪里
less
寻找"foo"
而不是" foo"
(再次使用-p ' foo'
)。查看源代码中的scan_option()
函数以options.c
获取详细信息。