- tail
tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]
-f 該參數(shù)用于監(jiān)視File文件增長(zhǎng)。
-c Number 從 Number 字節(jié)位置讀取指定文件
-n Number 從 Number 行位置讀取指定文件。
-m Number 從 Number 多字節(jié)字符位置讀取指定文件,比方你的文件假設(shè)包括中文字,假設(shè)指定-c參數(shù),可能導(dǎo)致截?cái)?,但使?m則會(huì)避免該問題。
-b Number 從 Number 表示的512字節(jié)塊位置讀取指定文件。
-k Number 從 Number 表示的1KB塊位置讀取指定文件。
File 指定操作的目標(biāo)文件名稱
上述命令中,都涉及到number,假設(shè)不指定,默認(rèn)顯示10行。
Number前面可使用正負(fù)號(hào),表示該偏移從頂部還是從尾部開始計(jì)算。
- head
head -n 10 test.log 查詢?nèi)罩疚募械念^10行日志;
head -n -10 test.log 查詢?nèi)罩疚募俗詈?0行的其他所有日志;
- grep
-c:只輸出匹配行的計(jì)數(shù)。
-I:不區(qū)分大 小寫(只適用于單字符)。
-h(huán):查詢多文件時(shí)不顯示文件名。
-l:查詢多文件時(shí)只輸出包含匹配字符的文件名。
-n:顯示匹配行及 行號(hào)。
-s:不顯示不存在或無(wú)匹配文本的錯(cuò)誤信息。
-v:顯示不包含匹配文本的所有行。
pattern正則表達(dá)式主要參數(shù):
: 忽略正則表達(dá)式中特殊字符的原有含義。
^:匹配正則表達(dá)式的開始行。
$: 匹配正則表達(dá)式的結(jié)束行。
<:從匹配正則表達(dá) 式的行開始。
>:到匹配正則表達(dá)式的行結(jié)束。
[ ]:?jiǎn)蝹€(gè)字符,如[A]即A符合要求 。
[ - ]:范圍,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的單個(gè)字符。
- :有字符,長(zhǎng)度可以為0。
cat service.log | grep 13888888888 查詢關(guān)鍵字
- sed
sed -n '5,10p' filename 這樣你就可以只查看文件的第5行到第10行。
- cat
cat主要有三大功能:
1.一次顯示整個(gè)文件。$ cat filename
2.從鍵盤創(chuàng)建一個(gè)文件。$ cat > filename
只能創(chuàng)建新文件,不能編輯已有文件.
3.將幾個(gè)文件合并為一個(gè)文件: $cat file1 file2 > file
4. cat service.log | wc -l 統(tǒng)計(jì)日志多少行
參數(shù):
-n 或 --number 由 1 開始對(duì)所有輸出的行數(shù)編號(hào)
-b 或 --number-nonblank 和 -n 相似,只不過對(duì)于空白行不編號(hào)
-s 或 --squeeze-blank 當(dāng)遇到有連續(xù)兩行以上的空白行,就代換為一行的空白行
-v 或 --show-nonprinting
例:
把 textfile1 的檔案內(nèi)容加上行號(hào)后輸入 textfile2 這個(gè)檔案里
cat -n textfile1 > textfile2
把 textfile1 和 textfile2 的檔案內(nèi)容加上行號(hào)(空白行不加)之后將內(nèi)容附加到 textfile3 里。
cat -b textfile1 textfile2 >> textfile3
把test.txt文件扔進(jìn)垃圾箱,賦空值test.txt
cat /dev/null > /etc/test.txt
注意:>意思是創(chuàng)建,>>是追加。千萬(wàn)不要弄混了。
tac (反向列示)
混合使用
A. tail web.2016-06-06.log -n 300 -f
查看底部即最新300條日志記錄,并實(shí)時(shí)刷新
B. grep 'nick' | tail web.2016-04-04.log -C 10
查看字符‘nick’前后10條日志記錄, 大寫C
C. cat -n test.log |tail -n +92|head -n 20
tail -n +92表示查詢92行之后的日志
head -n 20 則表示在前面的查詢結(jié)果里再查前20條記錄
D. sed -n "29496,29516p" service.log:從29496行開始檢索,到29516行結(jié)束
cat -n service.log | tail -n +29496 | head -n 20:從29496行開始檢索,往前推20條
如果關(guān)鍵字不太準(zhǔn)確(日志輸出的記錄太多了),我們可以使用more命令來瀏覽或者輸出到文件上再分析:
cat service.log | grep 13 |more :將查詢后的結(jié)果交由more輸出
cat service.log | grep 13 > /home/sanwai/aa.txt 將查詢后的結(jié)果寫到/home/sanwai/aa.txt文件上
技術(shù)討論 & 疑問建議 & 個(gè)人博客
版權(quán)聲明: 本博客所有文章除特別聲明外,均采用 CC BY-NC-SA 3.0 許可協(xié)議,轉(zhuǎn)載請(qǐng)注明出處!