在 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
然后键入&!^Computing
键enter
,所有这些行将会被隐藏。
您仍然可以使用 在剩余的行内进行搜索/
。
一旦找到了所需的行,您就可以将其他行带回来(如果您需要它们的上下文)-键入以删除过滤器的键&
。enter