Grep 整个路径

Grep 整个路径

我想这样做:

ls * | grep pattern

但我希望不仅仅显示具有模式的文件,还显示与模式匹配的文件的完整路径。

答案1

一种方法是使用find来进行匹配,但您可能必须更改模式以匹配find语法而不是greps,因为我认为它们并不相同。

find "$PWD" -maxdepth 1 -regex 'pattern'

应该会显示完整路径,并且-maxdepth会阻止它进入子目录。如果您只想使用 globs 而不是正则表达式,则可以使用-name 'glob'语法,然后*像使用 一样使用ls

这是我看到的一个示例输出:

$ find "$PWD" -maxdepth 1 -regex '.*sh$'
/home/erenouf/tmp/scratch/t.sh
/home/erenouf/tmp/scratch/parseIW.sh
/home/erenouf/tmp/scratch/output.sh

因为我~/tmp/scratch当时正在查找以sh

在这种情况下,我可以使用以下方法获得相同的输出

find "$PWD" -maxdepth 1 -name '*sh'

要让它在子目录中查找,您只需删除-maxdepth 1每个命令的一部分即可

相关内容