linux文件内容搜索(Linux软件大全)

linux查找内容命令

find,用于在文件树中查找文件并作相应的处理

-name:按照文件名查找文件

-perm:按照文件权限查找文件

-user:按照文件属主来查找文件

-size:按照指定的文件大小查找文件【+n:大于,-n:小于,n:等于】

-group:按照文件所属的组来查找文件

-mtime<-n><+n>:按照文件更改时间来查找文件,-n表示n天之内,+n表示n天以前

-newer file1 file2:查找更改时间在file1和file2之间的文件

例如:

find-mtime-2:查找48小时修改过的文件

find-name".log":查找当前目录以".log"结尾的文件

find/opt/soft/test-perm 777:查找指定目录下权限为777的文件

find-type f-name"*.log":查找当前目录下以".log"结尾的普通文件

find-type d| sort:查找当前所有目标目录并排序

find/home/wansw-size+20M:查找大于20M的文件

locate指令,可以快速定位文件路径,利用事先建立的系统中的所有文件名称和路径的locate数据库,无需遍历整个文件系统,查询速度较快,为了保证查询准确性,需要定期更新。《Linux就该这么学》

updatedb:第一次运行前,创建locate数据库

grep,用于过滤/搜索指定字符串。可以使用正则表达式,能配合多种命令使用。

用法:grep【选项】查找内容源文件

-A:显示符合的行及之后的内容

-B:显示符合的行及之前的内容

-C:显示符合的行及前后的内容

-c:计算符合的行数目

-n:显示匹配行和行号

-i:忽略大小写

规则表达式

:'grep'表示匹配所有以grep开头的行

'表示匹配所有以grep结尾的行

.:'gr.p'表示匹配'gr'后面接任意字符然后是'p'

:'grep'表示匹配一个或多个空格后紧跟grep的行

[]:[Gg]rep表示匹配Grep与grep

[]:[A-FH-Z]rep表示匹配不以A-F、H-Z开头并紧跟rep的行

例如(grep命令大多数时候多要和别的命令一起使用才有意义):

ps-ef| grep-c SVN:查找指定的进程的个数

cat test.txt| grep-f test2.txt:从text2.txt中读取关键字后在test.txt中搜索

cat test.txt| grep nf text2.txt:从text2.txt中读取关键字后在text.txt中搜索并显示行号

grep'linux' text.txt test2.txt:从多个文件中搜索关键字'linux'

cat test.txt| grep-E'ed|at':显示包含ed或at的行

Linux如何对文件内容中的关键字进行查找

1、首先我们准备一个要查找的文件,如下图所示。

2、接下来点击顶部的搜索菜单,然后选择查找选项,如下图所示。

3、然后在右上角的输入框中输入查找内容,就可以查找出匹配的的内容了。

4、另外我们还可以利用命令行查找,如下图所示,打开命令行。

5、输入grep命令,后面跟上要搜索的内容,然后加上文件名,如下图所示。

6、最后系统就会列举出匹配的内容项了,如下图所示。

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)

/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:递归读取每个目录下的所有文件。

高亮匹配到的模式

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

代码如下:

$ 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'*

输出样例:

   你也可以使用 find命令:

代码如下:

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

阅读剩余
THE END