在 Unix “less” 中,我可以跳转到下一行不包含 X 吗?

在 Unix “less” 中,我可以跳转到下一行不包含 X 吗?

在 Unixless工具中,是否可以跳转到下一行不是包含某种表达?

我有时必须查看包含数千个类似相邻行的文件,例如,所有行都说“计算某物“并且我对当前块之后的下一行感兴趣,该行不包含单词“Computing”。

答案1

是的,这是不匹配搜索功能,例如:

less file.conf

然后输入/,之后的!最后一行应该是这样的:

Non-match /

然后输入你的模式,例如Non-match /^#查找没有开头的第一行#

!您还可以使用 来代替字符Ctrl+N

答案2

作为 Casual Coder 答案的补充:

您还可以过滤掉所有行:

<logfile grep -v mypattern |less 

缺点是您必须退出并重新启动 grep 才能更改模式;优点是您不想看到的行会被隐藏,这使得您更容易在感兴趣的行中发现有趣的模式。

答案3

less您不仅可以在不包含 X 的行之间跳转,还可以使用 regex 过滤命令隐藏包含 X 的行&

less file.conf

然后键入&!^Computingenter,所有这些行将会被隐藏。

您仍然可以使用 在剩余的行内进行搜索/

一旦找到了所需的行,您就可以将其他行带回来(如果您需要它们的上下文)-键入以删除过滤器的键&enter

相关内容