grep命令查找文件内容|Linux中利用grep命令如何检索文件内容详解

grep命令查找文件内容|Linux中利用grep命令如何检索文件内容详解的第1张示图

『壹』 linux查找文件内容命令

搜索、查找文件当中的内容,一般最常用的是grep命令,另外还有egrep, vi命令也能搜索文件里面内容

1:搜索某个文件里面是否包含字符串,使用grep "search content" filename1, 例如

$ grep ORA alert_gsp.log

$ grep "ORA" alert_gsp.log

例如我们需要搜索、查找utlspadv.sql文件中包含ORA的字符内容

[[email protected] admin]$ grep "ORA" utlspadv.sql– ORA-XXXXX: Monitoring already started. If for example you want– ORA-20111:– ORA-20112:– ORA-20113: 'no active monitoring job found'– ORA-20113: 'no active monitoring job found'– 0 |<PS> =>DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM 0 0 2 99.3% 0% 0.7% ""– |<PR> DBS1.REGRESS.RDBMS.DEV.US.ORACLE.COM=> 100% 0% 0% "" |<PR> …– =>DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM 92 7 99.3% 0% 0.7% "" |<PR> …– |<C> CAPTURE_USER1=>DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM 2 0 0 0.E+00– |<C> CAPTURE_USER1=>DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM– ORA-20111:– ORA-20112:– ORA-20100:– ORA-20113: 'no active monitoring job found'– ORA-20113: 'no active monitoring job found'[[email protected] admin]$

如上所示,这个是一个模糊匹配,其实我是想要查看ORA这类错误,那么我要过滤掉哪一些没有用的,搜索的内容修改一下即可(当然也可以使用特殊参数,后面有讲述),如下所示。

[[email protected] admin]$ grep "ORA-" utlspadv.sql– ORA-XXXXX: Monitoring already started. If for example you want– ORA-20111:– ORA-20112:– ORA-20113: 'no active monitoring job found'– ORA-20113: 'no active monitoring job found'– ORA-20111:– ORA-20112:– ORA-20100:– ORA-20113: 'no active monitoring job found'– ORA-20113: 'no active monitoring job found'[[email protected] admin]$

7:有些场景,我们并不知道文件类型、或那些文件包含有我们需要搜索的字符串,那么可以递归搜索某个目录以及子目录下的所有文件

[[email protected] ~]$ grep -r "v$temp_space_header" /u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/

/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql:create or replace view v_$temp_space_header as select * from v$temp_space_header;

/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql:create or replace public synonym v$temp_space_header for v_$temp_space_header;

/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql:create or replace view gv_$temp_space_header as select * from gv$temp_space_header;

/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql:create or replace public synonym gv$temp_space_header

/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql: FROM gv$temp_space_header

/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspacd.sql:drop public synonym v$temp_space_header;

/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspacd.sql:drop public synonym gv$temp_space_header;

[[email protected] ~]$

8:如果我们只想获取那些文件包含搜索的内容,那么可以使用下命令

[[email protected] ~]$ grep -H -r "v$temp_space_header" /u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/ | cut -d: -f1

/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql

/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql

/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql

/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql

/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql

/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspacd.sql

/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspacd.sql

[[email protected] ~]$ grep -H -r "v$temp_space_header" /u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/ | cut -d: -f1 | uniq

/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql

/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspacd.sql

[[email protected]rver ~]$

9:如果只想获取和整个搜索字符匹配的内容,那么可以使用参数w

你可以对比一下两者的区别

[[email protected] admin]$ grep -w "ORA" utlspadv.sql– ORA-XXXXX: Monitoring already started. If for example you want– ORA-20111:– ORA-20112:– ORA-20113: 'no active monitoring job found'– ORA-20113: 'no active monitoring job found'– ORA-20111:– ORA-20112:– ORA-20100:– ORA-20113: 'no active monitoring job found'– ORA-20113: 'no active monitoring job found'[[email protected] admin]$ grep "ORA" utlspadv.sql– ORA-XXXXX: Monitoring already started. If for example you want– ORA-20111:– ORA-20112:– ORA-20113: 'no active monitoring job found'– ORA-20113: 'no active monitoring job found'– 0 |<PS> =>DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM 0 0 2 99.3% 0% 0.7% ""– |<PR> DBS1.REGRESS.RDBMS.DEV.US.ORACLE.COM=> 100% 0% 0% "" |<PR> …– =>DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM 92 7 99.3% 0% 0.7% "" |<PR> …– |<C> CAPTURE_USER1=>DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM 2 0 0 0.E+00– |<C> CAPTURE_USER1=>DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM– ORA-20111:– ORA-20112:– ORA-20100:– ORA-20113: 'no active monitoring job found'– ORA-20113: 'no active monitoring job found'[[email protected] admin]$

10: grep命令结合find命令搜索

[[email protected] admin]$ find . -name '*.sql' -exec grep -i 'v$temp_space_header' {} ; -printcreate or replace view v_$temp_space_header as select * from v$temp_space_header;create or replace public synonym v$temp_space_header for v_$temp_space_header;create or replace view gv_$temp_space_header as select * from gv$temp_space_header;create or replace public synonym gv$temp_space_headerFROM gv$temp_space_header./catspace.sqldrop public synonym v$temp_space_header;drop public synonym gv$temp_space_header;./catspacd.sql[[email protected] admin]$

11: egrep -w -R 'word1|word2' ~/klbtmp

12: vi命令其实也能搜索文件里面的内容,只不过没有grep命令功能那么方便、强大。

『贰』 Linux中的find和grep命令对查找到的文件如何处理啊

Linux中find命令查找到文件后通过-exec参数执行shell命令,案例如下:#-exec command {} \; 将查到的文件执行command操作回,{} 和 \;之间有空格find / -name filename -exec rm -rf {} \;#查找名字答为filename的文件,然后执行rm删除命令Linux中grep命令查找到文件后通过|(管道符)传递给后面命令执行,案例如下:ls -l|grep filename|rm -rf#查找名字为filename的文件,然后执行rm删除命令

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

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

『肆』 Linux中利用grep命令如何检索文件内容详解

如果是用vi打开文件后,在命令行下输入“/关键字” 如果是在没有打开文件的前提就用"cat 文件名 | grep "关键字""

『伍』 linux 查找文件内容命令

Linux查找文件内容的常用命令方法。 从文件内容查找匹配指定字符串的行:$ grep "被查找的字符串" 文件名例子:在当前目录里第一级文件夹中寻找包含指定字符串的.in文件grep "thermcontact" */*.in从文件内容查找与正则表达式匹配的行:$ grep –e “正则表达式” 文件名查找时不区分大小写:$ grep –i "被查找的字符串" 文件名查找匹配的行数:$ grep -c "被查找的字符串" 文件名从文件内容查找不匹配指定字符串的行:$ grep –v "被查找的字符串" 文件名学习更多linux知识《Linux就该这么学》,从根目录开始查找所有扩展名为.log的文本文件,并找出包含”ERROR”的行find / -type f -name "*.log" | xargs grep "ERROR"例子:从当前目录开始查找所有扩展名为.in的文本文件,并找出包含”thermcontact”的行find . -name "*.in" | xargs grep "thermcontact"

『陆』 grep命令查找怎样排除具体路径下某个文件

find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,专访问时间,属修改时间等。若跟据文件的内容进行查找,需使用grep命令。 说明: 1、find命令的一般形式为find [PATH] [option] [action] find命令部分选项说明:…

『柒』 linux命令查找文件里的信息

Linux查找文件内容的常用命令方法。 从文件内容查找匹配指定字符串的行:$ grep "被查找的字符串" 文件名例子:在当前目录里第一级文件夹中寻找包含指定字符串的.in文件grep "thermcontact" */*.in从文件内容查找与正则表达式匹配的行:$ grep –e “正则表达式” 文件名查找时不区分大小写:$ grep –i "被查找的字符串" 文件名查找匹配的行数:$ grep -c "被查找的字符串" 文件名从文件内容查找不匹配指定字符串的行:$ grep –v "被查找的字符串" 文件名从根目录开始查找所有扩展名为.log的文本文件,并找出包含”ERROR”的行find / -type f -name "*.log" | xargs grep "ERROR"例子:从当前目录开始查找所有扩展名为.in的文本文件,并找出包含”thermcontact”的行find . -name "*.in" | xargs grep "thermcontact"

『捌』 Linux里怎样查找文件内容

Linux查找文件内容的常用命令方法。 从文件内容查找匹配指定字符串的行:$ grep "被查找的字符串" 文件专名例子:在当前属目录里第一级文件夹中寻找包含指定字符串的.in文件grep "thermcontact" */*.in从文件内容查找与正则表达式匹配的行:$ grep –e “正则表达式” 文件名查找时不区分大小写:$ grep –i "被查找的字符串" 文件名查找匹配的行数:$ grep -c "被查找的字符串" 文件名从文件内容查找不匹配指定字符串的行:$ grep –v "被查找的字符串" 文件名从根目录开始查找所有扩展名为.log的文本文件,并找出包含”ERROR”的行find / -type f -name "*.log" | xargs grep "ERROR"例子:从当前目录开始查找所有扩展名为.in的文本文件,并找出包含”thermcontact”的行find . -name "*.in" | xargs grep "thermcontact"

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

从文件中搜索并显示文件名当你从不止一个的文件中搜索时,默认它将显示文件名:代码如下:grepword文件名greproot/etc/*示例输出:代码如下:/etc/bash.bashrc:Seemansudo_rootfordetails./etc/crontab:17****rootcd/run-parts–report/etc/cron.hourly/etc/crontab:256***roottest-x/usr/sbin/anacron||(cd/run-parts–report/etc/cron.daily)/etc/crontab:476**7roottest-x/usr/sbin/anacron||(cd/run-parts–report/etc/cron.weekly)/etc/group:root:x:0:grep:/etc/gshadow:Permissiondenied/etc/logrotate.conf:create0664rootutmp/etc/logrotate.conf:create0660rootutmp每行开始的第一个部分是文件名(如:/etc/crontab、/etc/group)。使用-l选项可以只显示文件名:代码如下:grep-lstringfilenamegrep-lroot/etc/*示例输出:代码如下:/etc/aliases/etc/arpwatch.confgrep:/etc/at.deny:Permissiondenied/etc/bash.bashrc/etc/bash_completion/etc/ca-certificates.conf/etc/crontab/etc/group你也可以逆转输出;使用-L选项来输出那些不匹配的文件的文件名:代码如下:grep-Lwordfilenamegrep-Lroot/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'*.txtgrep'main('*.cgrep'#include'*.cgrep'getChar*'*.cgrep-i'ultra'*.confgrep-iR'ultra'*.conf其中-i:忽略模式(匹配字符串valid、VALID、ValID)和输入文件(匹配file.cFILE.cFILE.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|xargsgrepmain(

未经允许不得转载:山九号 » grep命令查找文件内容|Linux中利用grep命令如何检索文件内容详解

赞 (0)