北京赛车pk10直播开奖
首頁
登錄 | 注冊

Linux中查看文本文件命令分享

日常開發中,我們經常需要在Linux服務器上進行各種文本,日志的查看操作,本文主要對常用的文本,日志查看技巧進行了一番總結和歸納,方便大家收藏起來后續查看使用:

tail命令查看日志信息

實時監控日志:

[email protected]:~/www.linuxidc.com$ tail -f linuxidc.com.txt

Linux中查看文本文件命令分享

實時監控2行日志信息:

[email protected]:~/www.linuxidc.com$ tail -2f linuxidc.com.txt

Linux中查看文本文件命令分享

查看日志尾部的最后100行日志信息:

[email protected]:~/www.linuxidc.com$ tail -n 100 linuxidc.com.txt

查看日志100行之后的日志信息:

[email protected]:~/www.linuxidc.com$ tail -n +100 linuxidc.com.txt

head命令查看文本信息

查看文本開始的頭100行信息:

[email protected]:~/www.linuxidc.com$ head -n 100 linuxidc.com.txt

查看文本最后100行信息以上的內容

[email protected]:~/www.linuxidc.com$ head -n -100 linuxidc.com.txt

cat命令查看文本信息

查看全部文本內容

[email protected]:~/www.linuxidc.com$ cat linuxidc.com.txt

查看文本的中間某些行范圍之間的內容,例如說查看文本文件100-120行之間的內容:

[email protected]:~/www.linuxidc.com$ cat -n linuxidc.com.txt |tail -n +100|head -n 20

不過使用個人不是太喜歡使用這種命令來進行文本的定位查看,因為查看起來過于麻煩,文章下邊會有更加簡便的命令操作。

tac查看文本信息

和cat命令有點相反,cat命令更多的是從頭部往尾部的順序展現文本內容,而tac命令正好是從文本的尾部往頭部展現日志內容

[email protected]:~/www.linuxidc.com$ tac linuxidc.com.txt

Linux中查看文本文件命令分享

例如說,我們通過cat命令和tac命令同時來查看一段相同的內容:

Linux中查看文本文件命令分享


通過不同命令來展示文本,會發現文本的內容順序有所相反。

搜索文本內容

grep是一種強大的文本搜索工具,它能使用正則表達式搜索文本,并把匹配的行打印出來。

grep命令的常用方式:

在多個文件中查找:

grep "match_pattern" file_1 file_2 file_3 ...

標記匹配顏色 --color=auto 選項:

grep "match_pattern" file_name --color=auto

//【這里的color項可以根據文檔說明進行選擇always,never,auto三種】

輸出除之外的所有行 -v 選項:

grep -v "match_pattern" file_name

使用正則表達式 -E 選項:

grep -E "[1-9]+"

只輸出匹配到的內容選項:

grep -o -E "[a-z]+."  line

統計文件或者文本中包含匹配字符串的行數 -c 選項:

grep -c "text" file_name

輸出包含匹配字符串的行數 -n 選項:

grep "text" -n file_name

在了解了grep命令能完成的功能點之后,我們可以在實際工作中靈活運用。

有些時候我們也會遇到一些希望查看某個時間段日志信息的需要,這個時候可以利用grep這條命令來實現這個功能,例如說希望查看2019-08-06 19點這一個小時以內的日志信息,那么可以輸入以下命令:

 grep '2019-08-12 19' log.file

這樣可以快速定位到你所希望查看的信息范圍。

由于grep命令是可以接收standard input的數據,因此我們通常可以借助管道命令符“ | ”的幫助,在一些標準輸出進行中進行查找操作。

例如說,先將文件的內容讀取出來,然后借助管道的幫助將內容轉發給grep來進行內容過濾,如下邊的這段命令:

cat log.file |grep -n '2019-08-12 22:00'

除了使用grep命令之外,也可以使用sed命令來實現相應的效果。

sed是一種非交互式的編輯器,sed會逐行處理文件(或輸入),并將結果發送到屏幕。

可能對于新手來說,講概念還不如直接來幾個實操案例更為直接。

sed命令的常用方式:

只打印文件的第一行內容

sed -n '1p'  filename

查看文件的第一行到第十行之間的內容

sed -n '1,10p' filename

刪除第一行文本信息

sed '1d' filename

將文本里面的某些字符串進行替換

sed 's/希望替換的內容/被替換的內容/g'
例如:sed 's/1/one /g' filename 將1替換為one

在了解了sed命令的一些基礎用法之后,我們可以在實際的工作場景中多次運用,從而強化自己對于sed命令的理解。

例如說,通過sed命令來進行日期范圍的指定,例如說查看2019-08-06 22:43-22:44之間的日志記錄:

sed -n '/2019-08-12 22:00/,/2019-08-12 22:01/p' filename

上邊有說到使用head和tail命令一起來實現對于日志文件的某段內容查看,但是這樣的操作實在是有點麻煩,不妨可以嘗試使用sed命令來進行操作。

例如說,查看日志的第1-20行內容:

 nl log.file | sed -n '1,10p'

利用more命令進行翻頁查看

如果說希望查看的日志文件過大,那么可以通過使用more命令來進行分頁查找,例如說設定每一頁展示10條數據信息:

more -10 filename

通過使用more命令可以查看到每一頁展示的數據,同時通過敲空格鍵會進行下一頁的跳轉。同時在窗口中也會顯示當前所閱讀的文本內容的基礎進度。

說了那么多,我們不妨進行一些模擬的操作場景吧:

查看日志最后一次出現關鍵字'test'的日志記錄

 grep 'test' -A 10  log.file | tail -n 11

這里需要了解到grep命令的幾個參數含義:

  • grep ‘name’ -A 10 顯示匹配內容和后面的10行
  • grep ‘name’ -B 10 顯示匹配內容和前面的10行
  • grep ‘name’ -C 10 顯示匹配內容和前后面的10行

tail -n 11命令則是將當前顯示的10行內容以及匹配的那一行內容展示出現

簡單統計一份日志里面出現‘test’關鍵字的行數

相應命令:

grep 'test' ./log.file |wc -l

這里我們可以先將文本的內容進行輸出到標準輸出中,然后借助管道將數據信息傳給wc命令進行統計。

wc命令常用的幾個參數

-l 匹配的行數
-w 匹配的字數
-m 匹配的字符數目

Linux里面對于文本信息的查看技巧實在是有太多了,遠遠不局限于我在文中所提及的這些,因此在實際的工作中我們還可以多多將有助于自己提升工作效率的技巧進行歸納和總結。



2019 monjeep.com webmaster#monjeep.com
12 q. 0.009 s.
京ICP備10005923號
北京赛车pk10直播开奖
陕西11选5开奖结果 微信牛牛 3d预测汇总 时时开奖结果 棒球 云南时时购方式 极速赛车的开奖规律 成都麻将如何算钱 福建彩票官方网站百度 快乐8网址导航