Linux "find" 命令并突出显示文件名
Linux "find" command and highlight filename
我正在使用 Linux find
命令。它会查看所有 *.jar
文件及其内容,并在其中找到单词“foo”,但有时文件名也可能包含单词“foo”。 (即 foo.jar、foo-123.jar、myfoo.jar 等)如果是这样,我想在文件名中突出显示“foo”一词。
我有 2 个单独使用时效果很好的命令,但有没有办法将它们组合成一个语句?
find . -type f -name *.jar | grep -E --color "foo"
find . -type f -name *.jar -exec grep -li "foo" {} \;
要查找那些文件名中包含 foo 和 以及 的文件,您可以执行
find . -type f -name *.jar -exec grep -li "foo" {} \; | grep -Fi foo
-exec 的结果会打印所有包含 foo 的文件的名称,随后的 grep 选择此文件的名称为 foo。
使用 find
的选项 -fprint
写入进程替换。
find . -type f -name \*.jar -fprint >(grep --color foo) -exec grep -li foo {} \;
注意:引用带有通配符的参数,如 *
。如果您只搜索一个简单的字符串,那么使用选项 -E
是没有用的。
我正在使用 Linux find
命令。它会查看所有 *.jar
文件及其内容,并在其中找到单词“foo”,但有时文件名也可能包含单词“foo”。 (即 foo.jar、foo-123.jar、myfoo.jar 等)如果是这样,我想在文件名中突出显示“foo”一词。
我有 2 个单独使用时效果很好的命令,但有没有办法将它们组合成一个语句?
find . -type f -name *.jar | grep -E --color "foo"
find . -type f -name *.jar -exec grep -li "foo" {} \;
要查找那些文件名中包含 foo 和 以及 的文件,您可以执行
find . -type f -name *.jar -exec grep -li "foo" {} \; | grep -Fi foo
-exec 的结果会打印所有包含 foo 的文件的名称,随后的 grep 选择此文件的名称为 foo。
使用 find
的选项 -fprint
写入进程替换。
find . -type f -name \*.jar -fprint >(grep --color foo) -exec grep -li foo {} \;
注意:引用带有通配符的参数,如 *
。如果您只搜索一个简单的字符串,那么使用选项 -E
是没有用的。