`less`“向后搜索”命令行开关?

`less`“向后搜索”命令行开关?

我知道less +/pattern filename会打开文件并导航到模式的第一个出现位置。有没有办法告诉less从末尾向后搜索?它甚至接受多个+开关吗?

不工作:

less +?pattern filename
less +G +?pattern filename

答案1

页面man说明less语法如下less +?pattern filename

?pattern
       Search  backward  in  the  file for the N-th line containing the
       pattern.  The search starts at the last line displayed (but  see
       the -a and -j options, which change this).

n继续向后搜索图案。 按N向前搜索图案。

例子

为了测试文件.txt

apple
banana
carrot
apple
banana
carrot
apple
banana
carrot

less +?banana testfile.txt显示以下内容:

banana
carrot

答案2

一般来说,最好像这样?退出patternshell:

less '+?pattern' filename

在您的情况下,您可能无法获得预期的结果,例如,当存在文件匹配+?pattern或者您设置了 bash 选项nullglob(用来shopt nullglob检查它)时。

如有疑问,你可以使用echo来查看你的shell改变了什么:

echo less +?pattern filename

相关内容