鍍金池/ 教程/ Linux/ shell 學(xué)習(xí)二十四天---提取開(kāi)頭或結(jié)尾數(shù)行
shell 學(xué)習(xí)四十五天---xargs
shell學(xué)習(xí)第三天
shell 學(xué)習(xí)十五天---join 連接字段
shell 學(xué)習(xí)第二天
shell 學(xué)習(xí)四十三天---臨時(shí)性文件的建立與使用
shell 學(xué)習(xí)第六天---小結(jié)
shell 學(xué)習(xí)三十三天---關(guān)于重定向
shell 學(xué)習(xí)二十九天---循環(huán)
shell 學(xué)習(xí)二十四天---提取開(kāi)頭或結(jié)尾數(shù)行
shell 學(xué)習(xí)第十天---sed 查找與替換
shell 學(xué)習(xí)第十一天---sed 正則的精確控制
shell 學(xué)習(xí)三十天---break,continue,shift,getopts
shell 學(xué)習(xí)---小結(jié)
shell 學(xué)習(xí)三十一天---函數(shù)問(wèn)題
shell 學(xué)習(xí)第四天---華麗的 printf 輸出
shell 學(xué)習(xí)三十五天---波浪號(hào)展開(kāi)與通配符
shell 學(xué)習(xí)十九天---文本塊排序
shell 學(xué)習(xí)十二天---行與字符串
shell 學(xué)習(xí)二十一天---重新格式化段落
shell 學(xué)習(xí)十八天---文本排序
shell 學(xué)習(xí)十三天---sed 案例分析
shell 學(xué)習(xí)四十一天---列出文件 ls 和 od 命令
shell 學(xué)習(xí)十七天---awk 命令
shell 學(xué)習(xí)三十六天---命令替換
shell 學(xué)習(xí)十六天---join 練習(xí)
shell 學(xué)習(xí)三十二天---read 讀取一行
shell 學(xué)習(xí)二十二天---計(jì)算行數(shù),字?jǐn)?shù)以及字符數(shù)
shell 學(xué)習(xí)小總結(jié)---本章小結(jié)
shell 學(xué)習(xí)第八天---擴(kuò)展正則表達(dá)式(ERE)
shell 學(xué)習(xí)四十二天---使用 touch 更新文件時(shí)間
shell 學(xué)習(xí)二十八天---case 語(yǔ)句
shell 學(xué)習(xí)三十九天---內(nèi)建命令
shell 學(xué)習(xí)第一天
shell 學(xué)習(xí)三十四天---printf 詳解
shell 學(xué)習(xí)二十六天---變量與算數(shù)
shell 學(xué)習(xí)三十八天---執(zhí)行順序和 eval
shell 學(xué)習(xí)四十四天---尋找文件
shell 學(xué)習(xí)二十五天---神器的管道符
shell 學(xué)習(xí)十四天---使用 cut 選定字段
shell 學(xué)習(xí)第五天---基本的I/O重定向
shell 學(xué)習(xí)四十天---awk 的驚人表現(xiàn)
shell 學(xué)習(xí)二十天---sort 的其他內(nèi)容以及 uniq 命令
shell 學(xué)習(xí)二十三天---打印
shell 學(xué)習(xí)第九天---分組
shell 學(xué)習(xí)四十八天---文件校驗(yàn)和匹配
shell 學(xué)習(xí)二十七天---退出狀態(tài)和 if 語(yǔ)句
shell 學(xué)習(xí)四十七天---文件比較 cmp,diff,patch
shell 學(xué)習(xí)第七天---基礎(chǔ)正則表達(dá)式(BRE)
shell 學(xué)習(xí)四十六天---文件系統(tǒng)的空間信息 df 和 du 命令
shell 學(xué)習(xí)三十七天---引用
shell 學(xué)習(xí)小結(jié)

shell 學(xué)習(xí)二十四天---提取開(kāi)頭或結(jié)尾數(shù)行

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