有時(shí),會(huì)需要從文本文件里把幾行字----多半是靠近開頭或結(jié)尾的幾行,提取出來;或者,有時(shí)只要瞧瞧工作日志的后面幾行,就可以了解最近工作活動(dòng)的大概情況.可以用下面的方式顯示標(biāo)準(zhǔn)錢n條記錄,或是命令行文件列表中的每一個(gè)前n條記錄.
head -n n [file(s)]
head -n [file(s)]
awk ‘FNR<= n’ [file(s)]
sed -e nq [file(s)]
sed nq [file(s)]
個(gè)人覺得最好用的顯示文本文件的頭幾行最好用的是 head -n [file(s)]
head 的常用選項(xiàng):
-q: 隱藏文件名
-v: 顯示文件名
-c<字節(jié)>: 顯示字節(jié)數(shù)
-n<行數(shù)>: 顯式的行數(shù)
在交互式 shell 通信期中,有時(shí)需要監(jiān)控某個(gè)文件的輸出----如日志這類持續(xù)寫入狀態(tài)的文件.-f 選項(xiàng)這時(shí)就派上用場了,他可以要求 tail 顯示指定的文件結(jié)尾行數(shù),接著進(jìn)入無止境的循環(huán)中----休息一秒后又再度醒來并檢查是否需要顯示更多的輸出結(jié)果.再設(shè)置-f 的狀態(tài)下,tail 只有當(dāng)你中斷它時(shí)才會(huì)停止----通常是輸入 Ctrl+C 來中斷;
tail -n 25 -f /var/log/messages
觀察此選項(xiàng)不可用于 shell 腳本.
直到按了 ctrl+c 選項(xiàng)后才停止.
由于 tail 加上-f 選項(xiàng)之后便不會(huì)自己中斷,所以此選項(xiàng)不能用于 shell 腳本.使用-f選項(xiàng)有實(shí)時(shí)監(jiān)聽的效果.
head 案例:
使用命令:head -n 3 /etc/passwd
結(jié)果是顯示文件的頭三行,
如果命令為:head -n -3 /etc/passwd
結(jié)果是顯示除了最后三行都顯示,注意到區(qū)別沒有?
相似的,顯示文件的前 n 個(gè)字節(jié),以及除了最后 n 個(gè)字節(jié)以外的內(nèi)容也沒問題了.
head 和 tail 如果組合使用:
head -n 5 /etc/passwd | tail -n 3
輸出/etc/passwd 的第三道第五行.