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命令,另外还有egrep, vi命令也能搜索文件里面内容
1:搜索某个文件里面是否包含字符串,使用grep "search content" filename1, 例如
$ grep ORA alert_gsp.log
$ grep "ORA" alert_gsp.log
例如我们需要搜索、查找utlspadv.sql文件中包含ORA的字符内容
[oracle@DB-Server 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'
[oracle@DB-Server admin]$
如上所示,这个是一个模糊匹配,其实我是想要查看ORA这类错误,那么我要过滤掉哪一些没有用的,搜索的内容修改一下即可(当然也可以使用特殊参数,后面有讲述),如下所示。
[oracle@DB-Server 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'
[oracle@DB-Server admin]$
7:有些场景,我们并不知道文件类型、或那些文件包含有我们需要搜索的字符串,那么可以递归搜索某个目录以及子目录下的所有文件
[oracle@DB-Server ~]$ 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;
[oracle@DB-Server ~]$
8:如果我们只想获取那些文件包含搜索的内容,那么可以使用下命令
[oracle@DB-Server ~]$ 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
[oracle@DB-Server ~]$ 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
[oracle@DB-Server ~]$
9:如果只想获取和整个搜索字符匹配的内容,那么可以使用参数w
你可以对比一下两者的区别
[oracle@DB-Server 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'
[oracle@DB-Server 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'
[oracle@DB-Server admin]$
10: grep命令结合find命令搜索
[oracle@DB-Server admin]$ find . -name '*.sql' -exec grep -i 'v$temp_space_header' {} ; -print
create 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_header
FROM gv$temp_space_header
./catspace.sql
drop public synonym v$temp_space_header;
drop public synonym gv$temp_space_header;
./catspacd.sql
[oracle@DB-Server admin]$
11: egrep -w -R 'word1|word2' ~/klbtmp
12: vi命令其实也能搜索文件里面的内容,只不过没有grep命令功能那么方便、强大。
❸ linux 搜索命令有哪些
文件搜索命令(只能搜索文件)
locate 文件名
在后台数据库中按文件名搜索,搜索速度快 /var/lib/mlocate(locate文件数据库) 这个数据库默认一天更新一次,强制更新命令:updatedb
按照/etc/updatedb.conf配置文件里面规则进行搜索
搜索命令的命令:whereis
whereis 命令名 作用:搜索命令所在路径及帮助文档所在位置
-b(只查找可执行文件) -m(只查找帮助文件)
which 文件名 作用:搜索命令所在路径及别名
PATH环境变量:定义的是系统搜索命令的路径
find [搜索范围] [搜索条件]
find /root -nouser(搜索没有所有者的文件)
find /var/log -mtime +10 (查找10天前修改的文件) atime(文件访问时间) ctime(改变文件属性的时间) mtime(修改文件内容的时间)
find . -size 25k(查找当前目录等于25k的文件) find . -size +10M(查找当前目录大于10M的文件)
find /etc -size +20k -a -size -50k (查找/etc下大于20k小于50k的文件) -a(and) -o(or)
find /etc -size +20k -a -size -50k -exec ls -lh {} ; (查找/etc下大于20k小于50k的文件,并显示详细信息)《Linux就该这么学》 一起学习更多命令
ls -i 文件名(查看该文件的i节点)
grep [选项] 字符串 文件名
-i (忽略大小写) -v(排除指定字符串)
Linux中的通配符:
* :匹配任意内容 ? :匹配任意一个字符 [] 匹配任意一个中括号内的字符
❹ linux find命令怎么用
你可以在超级用户状态 # 下,使用 find 命令查找指定的文件,举例如下:
#find / -name "*.c" -print <cr>
其中:/ 代表从根目录开始进行查找;"*.c" 代表要进行查找的文件类型为 C 语言源程序(*.c),-print 选项代表将查找到的结果输出到屏幕上。
该命令是最、最、最实用的文件查找命令,别的就可以举一反三了。例如:你如果想从 /usr 目录开始进行查找,那么就将 / 更改成:/usr 即可。
❺ Linux中如何查找文件
查找文件使用find命令,命令格式:find 路径 -name 文件名
例如要在整个根目录下查找test.txt文件,find / -name test.txt,需要注意的是必须对要查找的那个目录有可读权限
以上就是关于Linux中查找文件的内容,学习软件测试也需要学习Linux,如果你想学,可以看黑马程序员视频库的视频哦!
❻ linux下搜索文件打什么命令
根据部分文件名查找方法:
这个方法和在windows中查找已知的文件名方法是一样的。不过在linux中根据部分文
件名查找文件的方法要比在windows中的同类查找方法要强大得多。例如我们知道某个
文件包含有srm这3个字母,那么要找到系统中所有包含有这3个字母的文件是可以实现
的,输入:
find
/etc
-name
'*srm*'
这个命令表明了linux系统将在/etc整个目录中查找所有的包含有srm这3个字母的文件,
比如
absrmyz,
tibc.srm等等符合条件的文件都能显示出来。如果你还知道这个文件
是由srm
这3个字母打头的,那么我们还可以省略最前面的星号,命令如下:
find/etc
-name
'srm*'
❼ 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"
❽ linux如何查找某个文件名
题主你好,
linux中,最常用的查找文件命令是find.
最常用的查找文件方式有两种:
a.精确查找文件,即提供被查找文件的完整名称.
举例: 我在/root/ok/tmp文件夹下有两个文件, 名为: x.t和y.txt
可以看到x.t和x.txt这两个文件都找到了, 并且给的是绝对路径.
写在最后: 当然,上面只是find命令的一个小小的用法, 题主看看利用上面的方法是否可以满足要求, 如果不满足, 题主可以追问, 详细的说一下题主的场景, 我再给出解决方案.
希望可以帮到题主,欢迎追问.
❾ 怎么在Linux中查找某个文件
在 Linux 中查找文件有两种方法。一种是使用 find 命令,另外一种是使用 locate 命令。
1、Find 命令
使用 Linux find 命令可以用不同的搜索标准如名字、类型、所属人、大小等来搜索目录树。基本语法如下:
#findpathexpressionsearch-term
下面是使用 find 命令根据文件名来查找特定文件的一个例子:
#find-nametest.file
命令会搜索整个目录树来查找名为 test.file 的文件,并且会提供其存放位置。你可以使用你 Linux 上一个存在的文件名来尝试一下。
find 命令有时会花费几分钟来查找整个目录树,尤其是如果系统中有很多文件和目录的话。要显着减少时间,你可以指定搜索的目录。比如,如果你知道 /var 中存在 test.file,那就没有必要搜索其它目录。这样,你可以使用下面的命令:
#find/var-nametest.file
find 还可以根据时间、大小、所属人、权限等选项搜索文件。要了解更多关于这些选项的信息,你可以使用查看** Linux find 命令**的手册。
#manfind
2、locate 命令
要在Linux中使用locate命令,首先需要安装它。
如果你正在使用 Ubuntu,运行下面的命令来安装 locate:
#apt-getupdate#apt-getinstallmlocate
如果你使用的是 CentOS ,运行下面的命令来安装 locate:
#yuminstallmlocate
locate 是一种比 find 更快的方式,因为它在数据库中查找文件。要更新搜索数据库,运行下面的命令:
#updatedb
使用 locate 查找文件的语法:
#locatetest.file
就像 find 命令一样,locate 也有很多选项来过滤输出。要了解更多你可以查看Linux Locate 命令的手册。
#manlocate
❿ 在linux中如何用命令查找文件在哪
需要准备的材料分别是:电脑、linux连接工具。
1、首先连接上linux主机,进入等待输入指令的linux命令行状态。