如何使用grep在Linux上只显示文件名(没有内嵌匹配项)?

我通常使用的是:

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

如何获取文件名(带路径),但不带匹配项?我必须使用xargs吗?我在我的grep主页上找不到这样做的方法。

你的意思是,你想要至少有一个匹配的文件名?

好问题。实际上,我开始使用它来打开grep在vim中返回的文件列表。vim $(grep -rl Something app/)

不能使用grep命令列出文件,它主要用于从文件或列表中获取所需的文本。例如,ps aux grep'apt get'或grep'text以查找'/path/to/file/

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

从Unix标准:

-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。

这个选项的文档(通常在大多数人工文件中)是如此不清晰!pfff……令人惊奇的是,人怎么可能是屁股上的痛。

这是开源的msgr.dart——如果你不喜欢,提交一个请求。

有什么不清楚的?

-H还显示了匹配项本身。问题只针对文件名。

@Hauke和我的答案是-l。我提到-h只是因为用户在问题中的命令包括-h,当-l被给出时它是多余的。

从grep(1)手册页:

-l, --files-with-matches

Suppress  normal  output;  instead  print the name of each input

file from which output would normally have  been  printed.   The

scanning  will  stop  on  the  first match.  (-l is specified by

POSIX.)

在第一场比赛中停下来是必要的和自然的。

文档使其有点不清楚。"扫描将在第一次匹配时停止"—表示将打印所有文件名,但对匹配字的扫描将在第一次出现时停止。

@vishalp:因为我们不关心出现在哪里,只关心它们存在,所以在第一次出现之后搜索每个文件是没有意义的。

@伊格纳西奥瓦兹奎兹·艾布拉姆斯。文档的第一印象使您觉得它只打印第一个文件的文件名。你真的需要读几遍才能理解。

"当前文件的扫描将在第一次匹配时停止。"会更清晰。

GNU Grep手册页澄清了这一点。

对于简单的文件搜索,您可以使用grep的-l和-r选项:

grep -rl"mystring"

所有的搜索都是由grep完成的。当然,如果需要在其他参数上选择文件,find是正确的解决方案:

find . -iname"*.php" -execdir grep -l"mystring" {} +

execdir选项为每个目录构建每个grep命令,并将文件名连接到一个命令(+中)。

linux 只显示文件名称,如何使用grep在Linux上只显示文件名?相关推荐

  1. linux之ls只显示文件或者文件夹

    只显示文件夹     ls -l | grep ^d 只显示文件        ls -l | grep ^- 解释一下: ls -l 之后会得到下面的内容 drwx------   4 jinwan ...

  2. linux ls 只显示文件或者文件夹

    只显示文件夹     ls -l | grep ^d 只显示文件         ls -l | grep ^- 解释一下: ls -l 之后会得到下面的内容 drwx------   4 jinwa ...

  3. linux find查找多个关键字,Linux小技巧:find . | xargs grep -ri 关键字 -l —— 查询、匹配文件内容关键词...

    大家在工作中,是否遇到需要查询某个文件下内容中的关键词是否存在.例如: 需要查询在/etc/passwd下是否存在"yasuo"关键字: [[email protected] ~] ...

  4. linux ls 命令只显示目录和只显示文件

    只显示目录 ls -F | grep "/$" -F 文件类型(File type).在每一个列举项目之后添加一个符号.这些符号包括: / 表明是一个目录: @ 表明是到其它文件的 ...

  5. linux只显示文件,ls如何只显示文件名

    要列出当前目录下所有的文件名和目录名直接使用ls命令即可. 但如何只列出文件名而不列出目录呢? 查遍了ls 的帮助,也没看到有这个现成的选项. 幸好这个问题还是比较常见的,网上已经有了一些解答,但实验 ...

  6. linux下查找文件及内容 grep

    每一种操作系统都是由成千上万个不同种类的文件所组成的.其中有系统本身自带的文件,用户自己的文件,还有共享文件等等.我们有时候经常忘记某份文件放在硬盘中的哪个地方. 在微软的Windows操作系统中要查 ...

  7. 【Linux高频命令专题(24)】grep

    简述 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则 ...

  8. 【转】每天一个linux命令(39):grep 命令

    原文网址:http://www.cnblogs.com/peida/archive/2012/12/17/2821195.html Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表 ...

  9. linux查找命令、find、grep总结

    find 命令   语法:find 搜索路径 匹配表达式   功能:该命令用于在指定路径中查找符合条件的文件,搜索路径可以是多个目录,不同目录之间以空格分隔   (1)匹配表达式1        -n ...

最新文章

  1. classin安卓手机安装条件_Classin在线学习平台安装指引——从这里打开知识的大门与北京四中网校名师面对面交流学习!...
  2. Office2013 分享
  3. position: relative;导致页面卡顿
  4. 時鐘,天氣預報--js
  5. Sring AOP(简记)
  6. Linux 下 10 个最“危险”的命令,开发者应该了解
  7. 12025.petalinux 之phy调试ping(三)
  8. Android 应用开发(18)---在运行时请求权限
  9. A*算法 带cocos2d-x例子 a*寻路算法
  10. centos7显示时间的时区修改
  11. java sql 格式化_IDEA 格式化SQL代码技巧分享
  12. python 全国省市区列表查询
  13. 列出5个python标准库_5个常用 Python 标准库
  14. 斐讯K2 烧写第三方固件的简单方法
  15. 网站挂马检测 php,Python实现的检测网站挂马程序
  16. 【Office】新建的EXCEL打不开,而存在的EXCEL能打开
  17. CentOS禁止Ping方法
  18. java可变参数 map_Java第6期Collection、Map、迭代器、泛型、可变参数、集合工具类、集合结构、Debug...
  19. 如何看待抖音被降权限流,该怎么挽回账号权重丨国仁网络资讯
  20. 【BUUCTF】[强网杯 2019]随便注 1

热门文章

  1. 一个简单的审批流程系统设计
  2. 解决sudo pacman -S archlinuxcn-keyring 报错
  3. 云管理平台(CMP)介绍
  4. 美国南加大工程学院计算机,美国南加州大学工程学院排名是多少?
  5. 深度学习大模型训练--分布式 deepspeed PipeLine Parallelism 源码解析
  6. ReSpeaker 4-Mic 声源定位
  7. 黑马程序员_软件开发整体介绍
  8. 用计算机的说法,关于计算机系统,下列哪几个说法是正确的?
  9. 12.1接收短信【斯纳克PACS医学影像云平台用户手册】
  10. 03——axios配置对象以及默认配置