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

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

提取開頭或結(jié)尾數(shù)行

有時(shí),會(huì)需要從文本文件里把幾行字----多半是靠近開頭或結(jié)尾的幾行,提取出來(lái);或者,有時(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í)就派上用場(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)聽的效果。

head 案例:

使用命令:head -n 3 /etc/passwd 結(jié)果是顯示文件的頭三行,如果命令為:head -n -3 /etc/passwd 結(jié)果是顯示除了最后三行都顯示,注意到區(qū)別沒有?

相似的,顯示文件的前 n 個(gè)字節(jié),以及除了最后 n 個(gè)字節(jié)以外的內(nèi)容也沒問題了。

headtail 如果組合使用:

head -n 5 /etc/passwd | tail -n 3

輸出 /etc/passwd 的第三道第五行。