一、前言:在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" 文件名