Linux中使用grep命令搜索文件名及文件内容的方法

砗磲之灵

砗磲之灵

2016-03-31 15:14

下面,图老师小编带您去了解一下Linux中使用grep命令搜索文件名及文件内容的方法,生活就是不断的发现新事物,get新技能~

Linux中使用grep命令搜索文件名及文件内容的方法

   从文件中搜索并显示文件名

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

  代码如下:

  grep "word" 文件名

  grep root /etc/*

  示例输出:

  代码如下:

  /etc/bash.bashrc: See "man sudo_root" for details.

  /etc/crontab:17 * * * * root cd / && run-parts --report /etc/cron.hourly

  /etc/crontab:25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/fuwuqi/)

  /etc/crontab:47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )

  /etc/crontab:52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

  /etc/group:root:x:0:

  grep: /etc/gshadow: Permission denied

  /etc/logrotate.conf: create 0664 root utmp

  /etc/logrotate.conf: create 0660 root utmp

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

  代码如下:

  grep -l "string" filename

  grep -l root /etc/*

  示例输出:

  代码如下:

  /etc/aliases

  /etc/arpwatch.conf

  grep: /etc/at.deny: Permission denied

  /etc/bash.bashrc

  /etc/bash_completion

  /etc/ca-certificates.conf

  /etc/crontab

  /etc/group

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

  代码如下:

  grep -L "word" filename

  grep -L root /etc/*

  示例输出:

  代码如下:

  /etc/apm

  /etc/apparmor

  /etc/apparmor.d

  /etc/apport

  /etc/apt

  /etc/avahi

  /etc/bash_completion.d

  /etc/bindresvport.blacklist

  /etc/blkid.conf

  /etc/bluetooth

  /etc/bogofilter.cf

  /etc/bonobo-activation

  /etc/brlapi.key

  根据文件内容查找文件

  输入以下命令:

  代码如下:

  grep 'string' *.txt

  grep 'main(' *.c

  grep '#include' *.c

  grep 'getChar*' *.c

  grep -i 'ultra' *.conf

  grep -iR 'ultra' *.conf

  其中

  -i : 忽略模式(匹配字符串 valid、 VALID、 ValID )和输入文件(匹配 file.c FILE.c FILE.C)的大小写。

  -R : 递归读取每个目录下的所有文件。

  高亮匹配到的模式

  在搜索大量文件的时候你可以轻松地高亮模式:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/fuwuqi/)

  代码如下:

  $ grep --color=auto -iR 'getChar();' *.c

  为查找到的模式显示文件名和行号

  你也许需要显示文件名和行号:

  代码如下:

  $ grep --color=auto -iRnH 'getChar();' *.c

  其中,

  -n : 在输出的每行前面添加以 1 开始的行号。

  -H : 为每个匹配打印文件名。要搜索多个文件时这是默认选项。(LCTT 译注:-h 选项强制隐藏文件名;另外 -l 和 -L 选项用于仅显示匹配/不匹配的文件名,而 -H 和 -h用于控制在显示匹配行前显示/不显示文件名,注意区分。)

  代码如下:

  $grep --color=auto -nH 'DIR' *

  输出样例:

201625112508116.png (530×158)

  你也可以使用 find 命令:

  代码如下:

  $ find . -name "*.c" -print | xargs grep "main("

展开更多 50%)
分享

猜你喜欢

Linux中使用grep命令搜索文件名及文件内容的方法

服务器
Linux中使用grep命令搜索文件名及文件内容的方法

Linux如何使用grep命令搜索文本文件

电脑入门
Linux如何使用grep命令搜索文本文件

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

java 文件名截取方法

编程语言 网络编程
java 文件名截取方法

Linux中使用file命令识别文件类型的方法

电脑入门
Linux中使用file命令识别文件类型的方法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

linux下输入长文件名小技巧

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
linux下输入长文件名小技巧

win7电脑中如何实现同时搜索文件名和内容?

电脑网络
win7电脑中如何实现同时搜索文件名和内容?

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

如何在IIS6中发布网站

如何在IIS6中发布网站

ios9越狱后怎么用4g?

ios9越狱后怎么用4g?
下拉加载更多内容 ↓