从 bash 调用 less +&/pattern 以在 grep 模式下启动 less (escape &)

从 bash 调用 less +&/pattern 以在 grep 模式下启动 less (escape &)

在 less 中,我可以输入 &/!DEBUG|INFO 从大日志文件中排除 DEBUG 和 INFO 模式

我如何从别名、bash 脚本或命令行发送此信息

> # start less at last ERROR
> less +?ERROR foo.log  # works from cmd line (takes me to last line matching ERROR )

# For greping in less (the & is the problem of course)
> less +&INFO foo.log  # won't work 
> less +\&INFO foo.log  # won't work
> less +'&'INFO foo.log  # won't work

我排除的实际模式更长并且有几个 p1|p2|p3

不通过 grep -v 寻找管道,希望能够使用 less +F 等

答案1

less $'+&INFO\r' file或者less $'+&INFO\n' file

有关语法,请参阅 bash 手册$'...'

答案2

太好了,使用 $'+&INFO' 策略似乎是最好的方法。

为了完整起见,我将添加选项 --use-backslash,但它不允许 \n 或 \r (这可以帮助您不必每次都按 Enter 键。

less +G --use-backslash +\&\!DEBUG\|INFO foo.log

相关内容