一般的log文件都是需要过滤

ps:管道符| 管道符前面的输出值

grep 过滤查找

将是error的log过滤显示

grep '221.2.100.138'  web.access.log  

grep 221.2.100.138  web.access.log

less web.access.log |grep "221.2.100.138"

 统计error行数

grep '221.2.100.138' web.access.log |wc -l

less web.access.log |grep "221.2.100.138"  |wc -l( 小写)

将error重定向(linux是>python是>>)到文件中

grep 221.2.100.138  web.access.log >mylog1.txt

其他常用参数,位置放在前面后面都可以

-i   不区分大小写 grep -i 'HTTP'  web.access.log或者grep  'HTTP' -i web.access.log

-n      输出行号

 -w    匹配整个单词

正则   grep '^#'

-c    统计行数

sed 行筛选

显示第一行

sed -n '1p' filename

显示第1,5行

sed -n '1,5p' filename

常用选项:
        -n∶不使用的时候,会把所有数据都显示出来,但如果加上 -n 参数后,只显示经过处理的那几行
        -e∶直接在指令列模式上进行 sed 的动作编辑;
        -f∶直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作;
        -r∶sed 的动作支援的是延伸型正规表示法的语法。(预设是基础正规表示法语法)
        -i∶直接修改读取的档案内容,而不是由萤幕输出。

常用命令:
        a   ∶新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
        c   ∶取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
        d   ∶删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
         i   ∶插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
         ∶列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作~
         s

命令是直接使用,参数是-一起使用

格式:

sed '/模式/' d filename或者sed '/模式d/' filename都可以。删除查询条件为模式的行

eg:删除以#开头的行,并将修改写入文件

sed '/^#/' d -i filename

如果不加-i是显示在屏幕上,这时候可以把结果重定向到文件中

sed '/^#/' d filename>filename_new 覆盖写入w

sed '/^#/' d -i filename>>filename_new追加写入aw

sed -n '/2015:08:39:59/,/2015:08:40:02/' p web.access.log 打印出这个时间段的log,p是打印的意思

sed -n '/2015:08:39:59/,/2015:08:40:02/' web.access.log |awk '{print $4,$5}'

awk分列

语法awk '{print $1}'打印第一列

awk -F : '{print $1}' 以:为分隔符打印出第一列 比如每行的数据格式是aa:bb,执行以后会取到aa,要想这个时候取值aa和bb,执行awk -F :'{print $1,$2}'

awk '{if(表达式){语句}}'

(1)      awk '{print}' 打印所有列

(2)打印第一行的所有数据 awk 'NR==1{print}'

(3)打印第二行第一列       awk 'NR==2{print $1}'

grep '106.39.249.119' web.access.log | awk '{print $1,$2}' 打印出含有106这个ip地址的第一列和第二列

awk  '{if($1=="106.39.241.119"){print $1,$2}}' web.access.log 打印出ip地址是106的第一列和第二列

awk '$1=="106.39.249.119" {print $1,$2}' web.access.log同上

其他组合用法

1.统计wc

统计行数(line)  |wc -l          more filename|wc -l或者wc -l filename

统计单词数(word) |wc -w  

统计字符数  |wc -c (bytes)

2.排序sort 经常与|管道符使用

  |sort -n 按照数字进行排序,不加,会出现1后面是10这种排序

  |sort -nr 反序reverse排序

3.去重uniq

 经常与管道符结合使用|

|uniq -c 将该重复的数据的行数统计出  一般在uniq -c|sort -n使用,因为uniq会把数字统计出来,然后sort -n按照数字进行排序

|uniq -d 只显示重复的行

|uniq -u 只显示不重复的行

 例子:

统计出访问日志中有多少个不同的ip

awk '{print $1}' web.access.log |sort|uniq -c|wc -l

统计访问最高的ip

cat access.log|awk '{print $2}'|uniq -c|sort -nr|head -n 1

或者

cat acess.log|awk '{print $2}'|uniq -c|sort -nr|sed '1p'

字符转换tr,以下转换不会对源文件进行操作

tr '#' '!' 把#全部转换成!

cat a.log |tr 'a-z'  'A-Z'

linux,python 常用的处理log的命令的更多相关文章

  1. Linux中常用的监控性能的命令(sar、mpstat,vmstat, iostat,)详解

    Linux中常用的监控性能的命令有: sar:能查看CPU的平均信息,还能查看指定CPU的信息.与mpstat相比,sar能查看CPU历史信息 mpstat:能查看所有CPU的平均信息,还能查看指定C ...

  2. 【2016-10-11】Linux系统常用的关机或重启命令shutdown、reboot、halt、poweroff、init 0及init 6的联系与区别

    Linux下常用的关机/重启命令一般包括: shutdown.reboot.halt.poweroff等,当然了我们可以使用init 运行等级runlevel 0即halt来关机,或使用init 运行 ...

  3. Linux中常用的查看系统信息的命令

    导读 Linux是一个神奇而又高效的操作系统,学完Linux对Linux系统有一个熟悉的了解后,你需要了解下这些实用的查看系统信息的命令. 查看系统版本命令 uname 谈到系统版本就一定会想到una ...

  4. linux不常用但很有用的命令(持续完善)

    Linux登录后设置提示信息: /etc/issue 本地端登录前显示信息文件 /etc/issue.net 网络端登录前显示信息文件 /etc/motd 登陆后显示信息文件 可以添加以下几个常用选项 ...

  5. Linux下常用的硬件信息查看命令

    1.查看CPU型号,这里为了方便查看结合管道符用grep进行了匹配,当然只需要前面的命令也可以,命令如下: cat /proc/cpuinfo | grep "model name" ...

  6. Linux中常用的查找文件的命令

    我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索.这些是从网上找到的资料(参考资料1),因为有时很长时间不会用到,当要用的时候经常弄混了,所以放到这里方便使用. w ...

  7. Linux中常用的关机和重新启动命令

    hutdown.halt.reboot以及init,它们都可以达到关机和重新启动的目的,但是每个命令的内部工作过程是不同的,下面将逐一进行介绍. 一.shutdown shutdown命令用于安全关闭 ...

  8. Linux中常用来查看进程的命令PS

    查看所有运行中的进程:ps aux | less 显示所有进程: ps -A / ps -e 显示进程的树状图:pstree

  9. linux系统常用监控系统状态信息命令

    [root@bogon ~]# uptime #平均负载 23:33:21 up 2:09, 3 users, load average: 0.02, 0.05, 0.05 [root@bogon ~ ...

随机推荐

  1. [问题2014S06] 解答

    [问题2014S06]  解答  (本解答由巴闻嘉同学给出) 设特征多项式 \[f(x)=\det(xI_V-\varphi)=x^n+a_{n-1}x^{n-1}+\cdots+a_1x+a_0,\ ...

  2. Web页面速度测试工具

    开发框架的时间,想测试单例和多例下对性能的影响,找了下没有特别简单易用的测试工具. 估摸着搞了一个小工具. 针对.net Framework的2.0,3.5,4.0版本. WebHttpTest2.0 ...

  3. SerialChat与Arduino的配合使用

    最近在开发过程中,用到了Arduino开发板以及其IDE:Arduino,这个IDE使用起来很方便,编码也很简单,但有一点美中不足的是Arduino只能输出数值,不能绘图,所以就用到了另外一款串口调试 ...

  4. CentOS6.5 安装 jdk1.7

    1.卸载centos自带的jdk # rpm -qa | grep java 结果大致为: tzdata-java-2012c-1.el6.noarch java-1.7.0-openjdk-1.7. ...

  5. struts(三) ---OGNL的学习和理解

    OGNL:Object graphic Navgation Language(对象图形的导航语言)

  6. AVKit & MediaPlayer简写

    @import AVKit; @import AVFoundation; NSString *address = [[NSBundle mainBundle]pathForResource:@&quo ...

  7. neon指令,注意事项

    1. vbic_s8 (int8x8_t a, int8x8_t b) 是  ~(ai & bi),一开始理解成  (~ai )& bi 导致出错 2.uint8x8_t vqshrn ...

  8. Laravel Container分析

    在分析Laravel流程具体细节之前我们先来了解一下它的Container容器,容器的作用简单的说就是用来存储对象(类名称或者实例),包括提供一些生成对象实例的方法. 我们查看Illuminate\C ...

  9. Java内存分配

    概述 对从事C和C++的程序员来说,在内存管理方面,他们既是拥有最高权利的人,也是从事最基础工作的“劳动人民”. 而对于Java程序员来说,JVM自动进行内存管理,程序员不再需要为每一个new操作去写 ...

  10. linux文件复制与权限赋值

    文件file内容赋值到file2中 1. cp  file1  file2 2. cat file1 > file2 3. cat < file1 > file2 4. dd if= ...