在Linux上,我如何使用grep只显示文件名(没有在线匹配)?

我通常使用的是:

find . -iname "*php" -exec grep -H myString {} \;

我怎样才能只获取文件名(带路径),而不获取匹配项?我必须用xargs吗?我在我的grep手册页上找不到这样做的方法.

推荐答案

标准选项grep -l(即小写L)可以做到这一点.

Unix standard人中:

-l
    (The letter ell.) Write only the names of files containing selected
    lines to standard output. Pathnames are written once per file searched.
    If the standard input is searched, a pathname of (standard input) will
    be written, in the POSIX locale. In other locales, standard input may be
    replaced by something more appropriate in those locales.

在这种情况下,您也不需要-H.

Linux相关问答推荐

将UTC字符串日期时间转换为毫秒UTC时间戳

Linux内核中维护进程无关寄存器失败

当页面对齐关闭时,x86—64上的对象中的成员初始化器的Clang代码生成错误?

在 bash 中使用 tee 时如何返回错误代码

erlang 格式的 utf8 变为 \x(反斜杠 x)ascii 编码

sed:用空格替换

中的换行符

构建 python 映像时 Docker compose 问题,访问被拒绝或存储库不存在

在 Windows 上通过 SSH 运行 django 应用程序

Dockerfile:无法复制文件

如何使用 gcc 编译为程序集

需要解释 Linux bash 内置 exec 命令行为

隐藏文件 .env 未使用 Docker COPY 复制

如何知道是否有足够的内存可以在 Linux 机器上部署新应用程序?

如何设置errno值?

docker compose:加载共享库时出错:libz.so.1:无法从共享对象映射段:不允许操作

给定一个 linux 用户名和密码,我如何测试它是否是有效帐户?

ldconfig 错误:使用 Linux 加载程序时不是符号链接

System.currentTimeMillis 是否总是返回一个值 >= 以前的调用?

readelf vs. objdump:为什么都需要

Linux(Ubuntu)终端-如何查看以前的页面不再可见