Linux查找文件内容的常用命令方法:

 

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

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

 

2、从文件内容查找与正则表达式匹配的行:

$ grep –e “正则表达式” 文件名

 

3、查找时不区分大小写:

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

 

4、查找匹配的行数:

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

 

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

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

 

6、从根目录开始查找所有扩展名为.log的文本文件,并找出包含”ERROR”的行

find / -type f -name "*.log" | xargs grep "ERROR"

 

7、例子 :查找/SqLogs/access.log文件中包含".exe" 或者"TCP_DENIED"的记录

方法1:grep /SqLogs/access.log –e ".exe”

       grep /SqLogs/access.log –e "TCP_DENIED”

方法2:find /SqLogs –type f –name access.log | xargs grep ".exe"

       find /SqLogs –type f –name access.log | xargs grep "TCP_DENIED"

因为公司是通过SQUID代理服务器共享上网的,有时候因为某些原因,新版本的应用程序或者财务报税软件会无法使用,所以只有查看access.log文件,查找原因!由于LOG文件太大了,虽然每天都执行压缩重建LOG文件,但几十M的LOG文件里的内容太多,直接打开查看再查找很浪费时间,也很麻烦!之前用

tail –n 100 /SqLogs/access.log命令找起来也很麻烦,上面的两个命令帮了我很大的忙,很短的时间就可以帮我找到问题所在!分享给大家!