kas*_*mir 4 less grep arch-linux
在一堆配置文件中查找某个 var 时,对我来说似乎非常有用的东西:
less * | grep some_var
因此,some_var无需手动查看所有配置文件即可返回 的值。好的!但是如果我不仅想知道它的价值some_var而且想改变它呢?它在什么文件中?如何获取less命令(或grep,或其他命令)以显示 var 以及在哪个文件中找到它?
我搜索了手册页,但找不到任何合适的选项......
为什么要管less成任何东西?那把它变成cat. 显而易见的答案是
grep some_var * | less
Run Code Online (Sandbox Code Playgroud)
你会得到表单的输出
filename:this line contains some_var somewhere
Run Code Online (Sandbox Code Playgroud)
如果您将选项传递-n给grep,您还将获得行号:
filename:42:this line contains some_var somewhere
Run Code Online (Sandbox Code Playgroud)
许多编辑器都内置了某种形式的文件搜索,搜索结果出现在一个窗口中,您可以在该窗口中选择一行以在相应位置打开相应文件。在 Emacs 中,运行M-x grep或其变体之一。在 Vim 中,运行:grep或其变体之一。
less并不是真的要去做你想做的事;它用于以分页格式显示长文本文件。
grep 允许将文件或文件列表作为命令行参数传递,因此您可以简单地执行
grep -H some_var *
Run Code Online (Sandbox Code Playgroud)
这将为您提供如下所示的输出,因为该-H选项将名称作为结果的前缀:
filename: some_var blah blah
Run Code Online (Sandbox Code Playgroud)
如果您仍想通过管道将其导入less以便滚动浏览,您可以这样做。
grep -H some_var * | less
Run Code Online (Sandbox Code Playgroud)
通过大量的文件grepping另一项建议是ack还是ack-grep因为它是在Debian系统闻名。它旨在通过忽略二进制文件来相当快速地搜索源树,并且还需要较少的击键来进行类似的搜索。