grep 命令系列:从文件中搜索并显示文件名

我怎样从几个文件中搜索(grep),并只显示匹配到的文件的文件名?

当你从不止一个的文件中搜索时,默认它将显示文件名:


  1. grep "word" 文件名
  2. grep root /etc/*

示例输出:


  1. /etc/bash.bashrc: See "man sudo_root" for details.
  2. /etc/crontab:17 * * * * root cd / && run-parts --report /etc/cron.hourly
  3. /etc/crontab:25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
  4. /etc/crontab:47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
  5. /etc/crontab:52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
  6. /etc/group:root:x:0:
  7. grep: /etc/gshadow: Permission denied
  8. /etc/logrotate.conf: create 0664 root utmp
  9. /etc/logrotate.conf: create 0660 root utmp

每行开始的第一个部分是文件名(如:/etc/crontab、/etc/group)。使用 -l 选项可以只显示文件名:


  1. grep -l "string" filename
  2. grep -l root /etc/*

示例输出:


  1. /etc/aliases
  2. /etc/arpwatch.conf
  3. grep: /etc/at.deny: Permission denied
  4. /etc/bash.bashrc
  5. /etc/bash_completion
  6. /etc/ca-certificates.conf
  7. /etc/crontab
  8. /etc/group

你也可以逆转输出;使用 -L 选项来输出那些不匹配的文件的文件名:


  1. grep -L "word" filename
  2. grep -L root /etc/*

示例输出:


  1. /etc/apm
  2. /etc/apparmor
  3. /etc/apparmor.d
  4. /etc/apport
  5. /etc/apt
  6. /etc/avahi
  7. /etc/bash_completion.d
  8. /etc/bindresvport.blacklist
  9. /etc/blkid.conf
  10. /etc/bluetooth
  11. /etc/bogofilter.cf
  12. /etc/bonobo-activation
  13. /etc/brlapi.key

grep 命令系列:从文件中搜索并显示文件名

本文来自合作伙伴“Linux中国”

原文发布时间为:2013-04-02.

时间: 2024-10-03 15:48:52

grep 命令系列:从文件中搜索并显示文件名的相关文章

grep 命令系列:如何在 UNIX 中根据文件内容查找文件

grep 命令系列:如何在 UNIX 中根据文件内容查找文件 为了完成课程作业,我写了很多 C 语言代码并把它们保存为 /home/user/c/*.c 和 *.h.那么在 UNIX shell 窗口中我如何能通过字符串或者单词(例如函数名 main())文件内容来查找文件呢? 你需要用到以下工具: [a] grep 命令 : 输出匹配模式的行. [b] find 命令: 在目录层次中查找文件. 使用 grep 命令根据内容查找文件 输入以下命令: grep 'string' *.txt gre

grep 命令系列:grep 中的正则表达式

grep 命令系列:grep 中的正则表达式 在 Linux .类 Unix 系统中我该如何使用 Grep 命令的正则表达式呢? Linux 附带有 GNU grep 命令工具,它支持扩展正则表达式extended regular expressions,而且 GNU grep 在所有的 Linux 系统中都是默认有的.Grep 命令被用于搜索定位存储在您服务器或工作站上的任何信息. 正则表达式 正则表达式就是用于匹配每行输入的一种模式,模式是指一串字符序列.下面是范例: ^w1 w1|w2 [

grep 命令系列:如何在 Linux/UNIX 中使用 grep 命令

grep 命令系列:如何在 Linux/UNIX 中使用 grep 命令 我该怎样在 Linux.Apple OS X 及其他类 UNIX 系统中使用 grep 命令,你能给我展示一些简单的例子吗? grep 命令用来搜索文本,或从给定的文件中搜索行内包含了给定字符串或单词的文件.通常来说,grep 显示匹配到的行.使用 grep 来搜索包括一个或多个正则表达式匹配到的文本行,然后只显示匹配到的行.grep 被视作在 Linux/ Unix 系统中最有用的命令之一. 你知道吗 grep 这个名字

grep 命令系列:使用 grep 命令来搜索多个单词

grep 命令系列:使用 grep 命令来搜索多个单词 要使用 grep 命令来搜索多个字符串或单词,我们该怎么做?例如我想要查找 /path/to/file 文件中的 word1.word2.word3 等单词,我怎么样命令 grep 查找这些单词呢? grep 命令支持正则表达式匹配模式.要使用多单词搜索,请使用如下语法: grep 'word1\|word2\|word3' /path/to/file 下的例子中,要在一个名叫 /var/log/messages 的文本日志文件中查找 wa

grep 命令系列:如何只查看配置文件中未被注释的有效配置行

grep 命令系列:如何只查看配置文件中未被注释的有效配置行 大多数的Linux和类Unix系统的配置文件中都有许多的注释行,但是有时候我只想看其中的有效配置行.那我怎么才能只看到quid.conf或httpd.conf这样的配置文件中的非注释命令行呢?怎么去掉这些注释或者空行呢? 我们可以使用 UNIX/BSD/OS X/Linux 这些操作系统自身提供的 grep,sed,awk,perl或者其他文本处理工具来查看配置文件中的有效配置命令行. grep 命令示例--去掉注释 可以按照如下示例

linux-Linux中怎么用grep找出一个文件中空白行的行数字=

问题描述 Linux中怎么用grep找出一个文件中空白行的行数字= 不知道为什么这样写# grep '^&' /etc/profile | wc -l找不出结果, 请问这个应该怎么写才是真确的? 解决方案 grep -E '^$' -n /etc/profile 解决方案二: 加上正则的参数,试试下面的命令 grep -e '^$' -n /etc/profile

grep 命令系列:用 grep 命令统计匹配字符串的行数

grep 命令系列:用 grep 命令统计匹配字符串的行数 在 Linux 或 UNIX 操作系统下,对于给定的单词或字符串,我们应该怎么统计它们在每个输入文件中存在的行数呢? 您需要通过添加 -c 或者 --count 选项参数来抑制正常的输出.它将会显示对输入文件单词匹配的行数,如下所示: $ grep -c vivek /etc/passwd 或者 $ grep -w -c vivek /etc/passwd 输出的示例: 1 相反的,使用 -v 或者 --invert 选项参数可以统计出

shell read s-shell脚本使用read-s会不会保存在命令记录历史文件中

问题描述 shell脚本使用read-s会不会保存在命令记录历史文件中 在shell脚本中要用到read-s输入密码,但有博客说read-s会将输入内容当作命令保存在历史文件记录中 说法不详细.自己查看了history文件中并没有记录,求知道的帮忙给个详细解释. 另外使用stty-echo不回显,为啥再使用输入重定向时会有stty:standard错误 解决方案 你还可以试试passwd,这个应该不会保存到历史记录中. adduser "$1" echo "$2"

bat命令修改xml文件中某个参数的值

问题描述 bat命令修改xml文件中某个参数的值 用的下面的方法 set filename=C:UsersAdministratorDesktopccms_install_x86_windows_s1.0.3conftest2.xml set oldstr=pylGLZ set newstr=C:UsersAdministratorDesktopccms_install_x86_windows_s1.0.3upload setlocal enabledelayedexpansion for /f