linux查找文件内容命令

作者&投稿:少尤 (若有异议请与网页底部的电邮联系)
linux 查看文件内容的几种命令~

好多的吧,我说下常用的吧
cat #将文件内容输出到屏幕
head #查看文件开头N行
tail #查看文件末尾N行
tailf #动态的查看的写入,有写入时屏幕输出
vim、vi #文件编辑器,也可以当是查看文件{进入文件}
grep #查看特定的字符行
sed #这个是不进入文件里面修改文件,可以看文件的
awk #这个是按列查看文件
grep/sed/awk #这是文本三剑客,对字符的筛选,替换,修改,这三个比较重要的


搜索、查找文件当中的内容,一般最常用的是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]$

 

 

2: 如果你想搜索多个文件是否包含某个字符串,可以使用下面方式

 

grep "search content" filename1 filename2.... filenamen

grep "search content" *.sql

例如我想查看当前目录下,哪些sql脚本包含视图v$temp_space_header(注意:搜索的内容如果包含特殊字符时,必须进行转义处理,如下所示)

 

[oracle@DB-Server admin]$ grep "v\$temp_space_header" *.sql
catspacd.sql:drop public synonym v$temp_space_header;
catspacd.sql:drop public synonym gv$temp_space_header;
catspace.sql:create or replace view v_$temp_space_header as select * from v$temp_space_header;
catspace.sql:create or replace public synonym v$temp_space_header for v_$temp_space_header;
catspace.sql:create or replace view gv_$temp_space_header as select * from gv$temp_space_header;
catspace.sql:create or replace public synonym gv$temp_space_header
catspace.sql:            FROM gv$temp_space_header
[oracle@DB-Server admin]$

 

 

3:如果需要显示搜索文本在文件中的行数,可以使用参数-n

[oracle@DB-Server admin]$ grep  -n "v\$temp_space_header" *.sql
catspacd.sql:68:drop public synonym v$temp_space_header;
catspacd.sql:71:drop public synonym gv$temp_space_header;
catspace.sql:1952:create or replace view v_$temp_space_header as select * from v$temp_space_header;
catspace.sql:1953:create or replace public synonym v$temp_space_header for v_$temp_space_header;
catspace.sql:1956:create or replace view gv_$temp_space_header as select * from gv$temp_space_header;
catspace.sql:1957:create or replace public synonym gv$temp_space_header
catspace.sql:2357:            FROM gv$temp_space_header
[oracle@DB-Server admin]$

 

 

4: 如果搜索时需要忽略大小写问题,可以使用参数-i

 
[oracle@DB-Server admin]$ grep  "V\$TEMP_SPACE_HEADER" *.sql
[oracle@DB-Server admin]$ grep -i "V\$TEMP_SPACE_HEADER"  *.sql
catspacd.sql:drop public synonym v$temp_space_header;
catspacd.sql:drop public synonym gv$temp_space_header;
catspace.sql:create or replace view v_$temp_space_header as select * from v$temp_space_header;
catspace.sql:create or replace public synonym v$temp_space_header for v_$temp_space_header;
catspace.sql:create or replace view gv_$temp_space_header as select * from gv$temp_space_header;
catspace.sql:create or replace public synonym gv$temp_space_header
catspace.sql:            FROM gv$temp_space_header
[oracle@DB-Server admin]$

另外,例如检查安装的MySQL组件

[root@DB-Server init.d]# rpm -qa | grep -i mysql

MySQL-devel-5.6.23-1.linux_glibc2.5

MySQL-client-5.6.23-1.linux_glibc2.5

MySQL-server-5.6.23-1.linux_glibc2.5

 

 

5:从文件内容查找不匹配指定字符串的行:

 

$ grep –v "被查找的字符串" 文件名

例如查找某些进程时,我们不想显示包含命令grep ora_mmon的进程,如下所示

[oracle@DB-Server admin]$ ps -ef  | grep ora_mmon 
oracle   16675 16220  0 00:09 pts/1    00:00:00 grep ora_mmon
oracle   21412     1  0 Aug22 ?        00:00:07 ora_mmon_gsp
[oracle@DB-Server admin]$ ps -ef  | grep ora_mmon  | grep -v grep
oracle   21412     1  0 Aug22 ?        00:00:07 ora_mmon_gsp
[oracle@DB-Server admin]$

 

6:搜索、查找匹配的行数:

 

$ grep -c "被查找的字符串" 文件名

[oracle@DB-Server admin]$
[oracle@DB-Server admin]$ grep   "v\$temp_space_header" *.sql
catspacd.sql:drop public synonym v$temp_space_header;
catspacd.sql:drop public synonym gv$temp_space_header;
catspace.sql:create or replace view v_$temp_space_header as select * from v$temp_space_header;
catspace.sql:create or replace public synonym v$temp_space_header for v_$temp_space_header;
catspace.sql:create or replace view gv_$temp_space_header as select * from gv$temp_space_header;
catspace.sql:create or replace public synonym gv$temp_space_header
catspace.sql:            FROM gv$temp_space_header
[oracle@DB-Server admin]$ grep -c  "v\$temp_space_header"  catspacd.sql
2
[oracle@DB-Server admin]$ grep -c  "v\$temp_space_header"  catspace.sql
5
[oracle@DB-Server admin]$

 

 

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

 

[oracle@DB-Server ~]$ grep -r "v\$temp_space_header" /u01/app/oracle/product/11.1.0/dbhome_1/rdbms/admin/

/u01/app/oracle/product/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/product/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/product/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/product/11.1.0/dbhome_1/rdbms/admin/catspace.sql:create or replace public synonym gv$temp_space_header

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

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

/u01/app/oracle/product/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/product/11.1.0/dbhome_1/rdbms/admin/ | cut -d: -f1

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

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

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

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

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

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

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

[oracle@DB-Server ~]$ grep -H -r "v\$temp_space_header" /u01/app/oracle/product/11.1.0/dbhome_1/rdbms/admin/ | cut -d: -f1 | uniq

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

/u01/app/oracle/product/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查看文件内容命令
常用的7个Linux文件内容查看命令:1.cat由第一行开始显示文件内容 用法:cat-A 相当于-vET的整合选项,可列出一些特殊字符而不是空白;cat-b 列出行号,仅针对非空白行做行号显示,空白行不标行号;cat-E 将结尾的断行字节$显示出来;cat-n 列印出行号,连同空白行也会有行号,与-b的选项不同;cat-...

linux 下怎样查找一个文件
-7`。find命令还支持查找特定类型文件,如`-type b`查找块设备文件,`-type d`查找目录,等等。local查找可能不太常用,因为它通常用于本地搜索,但如果你需要在特定范围内查找,它也是一个可选项。总的来说,find命令为Linux下的文件搜索提供了丰富的功能和灵活性,可以根据具体需求进行定制化操作。

linux文件内容查找linux文件内容
more指令——分页显示文件内容。more指令会以一页一页的形式显示文件内容,按空白键(space)显示下一页内容,按Enter键会显示下一行内容,按b键就会往回(back)一页显示,其基本用法如下:morefile1查看文件file1的文件内容;less指令——可以向前或向后查看文件内容。linux查询gz文件中的内容?用zcat...

linux下怎么查看root目录下的文件内容?
1、首先打开Terminal终端:依次定位applications-system tools-Terminal,即进入命令行模式。2、进入root目录下,先查看是否是root目录,用pwd命令查看当前路径。3、发现确实是root目录下,我们切换到\/home目录下,切换命令:cd \/home,再次用pwd命令查出在\/home目录下。4、在此目录下新建目录文件夹root,命令...

linux查找文件属于哪个目
-4 example.c`。5. `grep`、`fgrep`和`egrep`用于在文件中搜索特定模式或字符串。例如,`grep "text" file`会查找文件中包含"text"的行,`fgrep`用于搜索固定字符串,而`egrep`则能处理正则表达式。通过这些命令,你可以方便地定位和查看Linux系统中文件的所在目录,从而更好地管理和操作文件。

linux中查找文件夹的命令
在Linux中,查找文件夹的命令是`find`。以下是关于该命令的 一、`find`命令的基本功能 `find`命令用于在文件系统中搜索文件和目录。它可以递归地遍历指定目录及其子目录,根据指定的条件来查找文件和目录。二、`find`命令的基本语法 `find`命令的基本语法是:bash find [路径] [选项] [操作]其中,[...

Linux中查找文件夹的命令
find命令支持组合多个条件,`-a`表示同时满足所有条件,`-o`表示满足任一条件,这有助于筛选出你想要的文件。例如,`find \/ -type f -size +10M -user user1`将查找用户"user1"且大小超过10MB的普通文件。总的来说,Linux的find命令提供了灵活且强大的文件搜索功能,通过熟练掌握这些基本用法,你...

linux grep命令怎么用
Linux grep命令用于查找文件里符合条件的字符串或正则表达式。grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。语法:gre...

如何在Linux下查找文件内容包含某个特定字符串的文件
概述使用grep可以查找包含指定字符串的文件 步骤详解格式:grep “要查找的字符串” 文件名 例子:grep "192.168.0.1" \/etc 文件名可以使用基本正则表达式(BRE),例如, 查找test目录下的所有文件,是否包含www.dutycode.com字符串。grep “www.dutycode.com” \/root\/zzh\/test\/ 小贴士:使用-n ...

linux下查找文件内容
(9)find \/ -size -1000k #查找出小于1000KB的文件 3.使用混合查找方式查找文件 参数有: !,-and(-a),-or(-o)。(1)find \/tmp -size +10000c -and -mtime +2 #在\/tmp目录下查找大于10000字节并在最后2分钟内修改的文件 (2)find \/ -user fred -or -user george #在\/目录下查找...

佛冈县15818997410: Linux里怎样查找文件内容 -
宰知玛特: Linux查找文件内容的常用命令方法. 1、从文件内容查找匹配指定字符串的行: $ grep "被查找的字符串" 文件名 例子:在当前目录里第一级文件夹中寻找包含指定字符串的.in文件 grep "thermcontact" */*.in 2、从文件内容查找与正则表达...

佛冈县15818997410: linux 查找文件内容 命令 哪些 -
宰知玛特: find 文件路径 -name 文件名 (这样会找指定路径下的指定文件) 如果查找文件内容:grep -ir 搜索内容 文件目录名 (这样就能将文件内的东西也能挨个遍历找打)

佛冈县15818997410: Linux 查找文件用什么命令好 -
宰知玛特: find:查找文件或目录所在路径 格式:find [路径] [表达式] 表达式: -name :查找名为filename的文件 -perm :按执行权限来查找 -empty :查找空文件或空目录 -user :按文件属主来查找 -group :按组来查找 -nogroup :查无有效属组的文件,...

佛冈县15818997410: linux下搜索文件打什么命令? -
宰知玛特: which 查看可执行文件的位置.whereis 查看文件位置.locate 配合数据库查看文件位置.find 实际搜索硬盘查询文件名称.一般我不常用find命令,因为find命令比较庞大,搜索范围太大了,耗时长. 比如which吧,它是根据PATH环境变量...

佛冈县15818997410: linux怎么搜索文件? -
宰知玛特: 在Linux中我们通常使用两个命令来搜索文件:1.locate 2.findlocate这个命令呢是根据索引来搜索文件的,所以非常快,但!不是实时的而find命令则是实时的搜索文件,命令使用格式:find [搜索位置] [搜索模式]例如:find /etc -user root 搜索/etc目录下所有属主是root的文件.find命令非常强大,推荐你看下《Linux就该这么学》这本书的第二章,有详细介绍find的使用方法和高级技巧等.

佛冈县15818997410: ★Linux系统中怎么搜索文件命令大全 -
宰知玛特: 你可以使用 find 命令,举例来说:最基本的功能例如:在整个系统中搜索名为 *.c 源程序,你可以在超级用户 # 状态下,使用 find 命令.见下面. #find / -name "*.c" -print # 其中:代表回车键./ 代表从根目录开始进行搜索.-print 代表将搜索到的结果显示在屏幕上. 执行完该命令后,该命令就会将整个系统中所有的 C 语言源程序所在的子目录显示在屏幕上. 当然了,对于 find 命令而言,再配上Linux 强大的SHELL编程功能,你还可以使用SHELL的各种过滤符号,挑选出符合你的各种条件的文件名.这个就要靠你自己去熟悉SHELL编程了.

佛冈县15818997410: linux上查找命令是哪个? 想在文件中查找一句话 -
宰知玛特: 查找文件时find 要是想在文件里查找一句话的 用命令 #grep “你想要的话” 文件名 > 文件 前文件名是你要查找的文件 后面那个文件时 输出的目标.然后再查看后面那个文件的内容即可

佛冈县15818997410: Linux下怎样搜索文件 -
宰知玛特: 有两种方法1. find命令 具体使用方法可参见帮助文件,举例: find /etc -name i18n ------ 在/etc目录下查找所有名称为i18n的文件或目录 2. locate 命令 该命令需要与updatedb命令配合,先使用updatedb命令建立整个系统的文件搜索数据库 $ sudo...

佛冈县15818997410: linux下查找文件的命令? -
宰知玛特: find就可以啊,你不指定路径他就查找所有满足条件的文件 find -name '你的文件名'.可以参考《Linux就该这么学》.

佛冈县15818997410: linux怎样搜索文件或文件夹 -
宰知玛特: find命令,它使用起来功能强大,但是也很复杂 比如fing / 就是查找根目录下的所有文件 它有许多可用参数,-name后加文件名,-perm后加权限,-exec或-ok用来在查找文件后执行shell命令,如找到一些文件然后删除,-newer用来寻找比某个文件新的文件,还有许多 另外就是whereis,用来查找命令所在的位置比较不错 还有slocate,后面直接加文件名就行了,但是要先用updatedb命令来更新数据库,这样才能找到最新的文件

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网