cat linux日志,Linux日志查看命令

无意看到这样一个命令:

cat cxx_Biz.log.2018-04-27-AM |grep ERROR| awk -F '[' '{print

math?formula=2%7D'%7Cawk%20-F%20'%20'%20'%7Bprint1}'| sort |uniq -c|wc -l

该命令用来统计日志中文本出现的次数。但是其中的命令不太熟悉。

我们一般用到的的日志查看相关指令:

tail -f -n 100 catalina.out

less catalina.out|grep ERROR

如果需要统计文本出现次数,比如Error出现的次数怎么办?因此需要具备一下知识:

1.cat命令:

cat命令是整个文件的内容从上到下显示在屏幕上。还可以将多个文件连接起来显示,它常与重定向符号配合使用,适用于文件内容少的情况.

at命令主要有三大功能

1.一次显示整个文件 cat filename

2.创建一个文件 cat > fileName

3.将几个文件合并为一个文件 cat file1 file2 > file

参数:

-n 或 –number 由 1 开始对所有输出的行数编号

-b 或 –number-nonblank 和 -n 相似,只不过对于空白行不编号

-s 或 –squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行

-v 或 –show-nonprinting

2.| 管道

管道的作用是将左边命令的输出作为右边命令的输入

3.awk 命令

awk 是行处理器,优点是处理庞大文件时不会出现内存溢出或处理缓慢的问题,通常用来格式化文本信息。awk依次对每一行进行处理,然后输出。

4.sort 命令

sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。

-b:忽略每行前面开始出的空格字符;

-c:检查文件是否已经按照顺序排序;

-d:排序时,处理英文字母、数字及空格字符外,忽略其他的字符;

-f:排序时,将小写字母视为大写字母;

-i:排序时,除了040至176之间的ASCII字符外,忽略其他的字符;

-m:将几个排序号的文件进行合并;

-M:将前面3个字母依照月份的缩写进行排序;

-n:依照数值的大小排序;

-o:将排序后的结果存入制定的文件;

-r:以相反的顺序来排序;

-t:指定排序时所用的栏位分隔字符;

5.uniq 命令

uniq 命令用于报告或忽略文件中的重复行,一般与sort命令结合使用

-c或——count:在每列旁边显示该行重复出现的次数;

-d或–repeated:仅显示重复出现的行列;

-f或–skip-fields=:忽略比较指定的栏位;

-s或–skip-chars=:忽略比较指定的字符;

-u或——unique:仅显示出一次的行列;

-w或–check-chars=:指定要比较的字符。

6.> 命令

命令 > 是定向输出到文件,如果文件不存在,就创建文件。如果文件存在,就将其清空

另外 >>是将输出内容追加到目标文件中。其他同>

演示

创建文件

➜ uc cat > test_1.log

ERROR [dewdwededeqw

ERROR [adswwxdwexweddsacd

Exception

ddxwwdxw

dwsxwxwx

ERROR [123421342312^[[D^[[D

ERROR [Heal-Session-Thread] (MemcachedConnector.java:166) - Reconnect to 192.168.200.123:8888 fail

ERROR [Xmemcached-Reactor-0] (MemcachedConnector.java:528) - Exception occured in contr

查看文件

➜ uc cat test.log

ERROR

EXCEPTION

ERROR

ERROR

取出每一行需要的字符串

➜ uc cat test_1.log | awk -F '[' '{print $1}'

ERROR

ERROR

Exception

ddxwwdxw

dwsxwxwx

ERROR

ERROR

ERROR

说明:awk命令:-F指定分隔符"[",是一个正则表达式;{print $1}指把第一个值打印出来。

3 对行进行排序

先排序是因为去重与统计的 ‘unip’命令只能处理相邻行

➜ uc cat test_1.log | awk -F '[' '{print $1}'|sort

ERROR

ERROR

ERROR

ERROR

ERROR

Exception

ddxwwdxw

dwsxwxwx

4 统计数量与去重

➜ uc cat test_1.log | awk -F '[' '{print $1}'|sort|uniq -c

1 ERROR

4 ERROR

1 Exception

1 ddxwwdxw

1 dwsxwxwx

可以得到每个字符串所对应的出现次数

5 按重复次数排序

➜ uc cat test_1.log | awk -F '[' '{print $1}'|sort|uniq -c|sort -rn

4 ERROR

1 dwsxwxwx

1 ddxwwdxw

1 Exception

1 ERROR

sort 的 -n:依照数值的大小排序;-r 按照相反顺序排列

6 将结果输出到文件中

➜ uc cat test_1.log | awk -F '[' '{print $1}'|sort|uniq -c|sort -rn>test_res.log

回到最开始的命令就容易明白其含义了。

cat cxx_Biz.log.2018-04-27-AM |grep ERROR| awk -F '[' '{print $2}'|awk -F ' ' '{print $1}'| sort |uniq -c|wc -l

其中的wc命令是干什么的?

Linux系统中的wc(Word Count)命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出。

1.命令格式:

wc [选项]文件...

2.命令功能:

统计指定文件中的字节数、字数、行数,并将统计结果显示输出。该命令统计指定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所指定文件的总统计数。

3.命令参数:

-c 统计字节数。

-l 统计行数。

-m 统计字符数。这个标志不能与 -c 标志一起使用。

-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。

-L 打印最长行的长度。

-help 显示帮助信息

--version 显示版本信息

比如统计总行数:

➜ uc cat test_1.log | awk -F '[' '{print $1}'|sort|uniq -c

1 ERROR

4 ERROR

1 Exception

1 ddxwwdxw

1 dwsxwxwx

➜ uc cat test_1.log | awk -F '[' '{print $1}'|sort|uniq -c|wc -l

5

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值