我很确定我以前做过这个(并且答案就在某个地方),但现在想不起来。
我正在寻找单行在以下两个位置搜索(并返回/回显)匹配项文件名和文件。
可能最简单的方法是分别运行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”,则返回文件名。