一、前言:在Linux系统当中,查找文件里面的指定内容 应该是系统维护、管理当中遇到最常见的。那么下面如何搜索、查找文件当中的内容呢?下面就介绍一下如何在文件中查找指定的内容
查找文件当中的内容,一般最常用的是grep命令,另外还有egrep, vi命令也能搜索文件里面内容。
1、搜索某个文件里面是否包含字符串,使用 grep "search-content" filename
命令:
[root@localhost logs]# grep '搜索内容' log_file_catalina.out 或者 [root@localhost logs]# grep 搜索内容 log_file_catalina.out
例如我们 查找 log_file_catalina.out 文件中包含 '总数:900' 的字符内容
2: 2、如果你想搜索多个文件是否包含某个字符串,可以使用下面方式
[root@localhost logs]# grep "search-content" filename1 filename2.... filenamen [root@localhost logs]# grep "search-content" *.out
例如 我想查看当前目录下,哪些日志文件含'\总数:900\' {注意:搜索的内容如果包含特殊字符时,必须进行转义处理}
[root@localhost logs]# grep "\\总数:900\\" *.out
2.1 如果需要显示搜索文本在文件中的行数,可以使用参数 -n
[root@localhost logs]# grep -n "\\总数:900\\" *.out
2.2 如果搜索时需要忽略大小写问题,可以使用参数 -i
[root@localhost logs]# grep -i "\\总数:900\\" *.out
3、从文件内容查找不匹配指定字符串的行:
[root@localhost logs]# grep –v "search-content" 文件名
例如查找某些进程时,我们不想显示包含命令 grep tomcat 的进程,如下所示
[root@localhost admin]$ ps -ef | grep tomcat root 16675 16220 0 00:09 pts/1 00:00:00 grep tomcat root 21412 1 0 Aug22 ? 00:00:07 tomcat [root@localhost admin]$ ps -ef | grep tomcat| grep -v grep root 21412 1 0 Aug22 ? 00:00:07 tomcat [root@localhost admin]$
4、搜索、查找匹配的行数:
[root@localhost logs]# grep -c "search-content" 文件名
[root@localhost log]$ grep -c "总数:900" log_file_catalina.out 2 [root@localhost log]$ grep -c "总数:900" log_file_catalina.out 5 [root@localhost log]$
5、如果只想获取和整个搜索字符匹配的内容,那么可以使用参数w
[root@localhost logs]# grep -w "search-content" 文件名