如何使用一行代码在文件名(find)和文件(grep)中搜索?

如何使用一行代码在文件名(find)和文件(grep)中搜索?

我很确定我以前做过这个(并且答案就在某个地方),但现在想不起来。

我正在寻找单行在以下两个位置搜索(并返回/回显)匹配项文件名文件


可能最简单的方法是分别运行grep和运行find;但我更喜欢单行...

...除非有可能分号(?)或其他方式按顺序运行这些工具。


我不认为我所追求的解决方案会涉及管道 | 因为,借用集合论,我感兴趣的是联盟两个集合 A 和 B 中的A∪B),而不是他们的路口(A∩B)。

答案1

你是对的 - 你可以使用分号按顺序运行命令列表:

$ find . -name 'test'; grep test *

您还可以将其分组为单个命令运行:http://www.gnu.org/software/bash/manual/html_node/Command-Grouping.html

答案2

在你的终端上尝试一下( CTRL++ ALT)T

find <here your starting string > -type f -exec grep -l <here place the part of file name> {} \;

上述命令的说明:

find snow -type f-> 查找以 snow 开头的所有文件。 find .... -exec-> 对于找到的每个项目,执行以下命令。在命令中通常放置文件名的位置,输入 {} 。 grep -l "String" something-> 如果在文件 something 中找到字符串“String”,则返回文件名。

信用:dbasupport.com

相关内容