cat linux日志,Linux日志查看命令
無意看到這樣一個命令:
cat cxx_Biz.log.2018-04-27-AM |grep ERROR| awk -F '[' '{print
1}'| 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
總結
以上是生活随笔為你收集整理的cat linux日志,Linux日志查看命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用jk触发器构成二分频电路_如何用下沿触
- 下一篇: 1024happyCTF