主頁(yè) > 知識(shí)庫(kù) > 利用linux命令行工具進(jìn)行文本行過(guò)濾的方法

利用linux命令行工具進(jìn)行文本行過(guò)濾的方法

熱門標(biāo)簽:百度中國(guó)地圖標(biāo)注中心 安陽(yáng)百應(yīng)電銷機(jī)器人加盟 山東企業(yè)電銷機(jī)器人價(jià)格 琿春市地圖標(biāo)注app 百度地圖標(biāo)注開鎖電話 潮州地圖標(biāo)注 pageadm實(shí)現(xiàn)地圖標(biāo)注 依蘭縣地圖標(biāo)注app 公司400電話辦理價(jià)格

在日常工作中會(huì)遇到需要篩選過(guò)濾要查看的日志等文本文件的任務(wù),例如需要查看日志文件的最后幾行等。下面總結(jié)一下常見的對(duì)文本行過(guò)濾的方法。一起去看看吧!

常用命令行工具

接下來(lái)主要使用的是head,tail,sed和awk,這幾個(gè)工具。其中sed和awk工具非常強(qiáng)大,使用它們來(lái)進(jìn)行文本的過(guò)濾可能有點(diǎn)大材小用,不過(guò)基本上所有的任務(wù)都可以通過(guò)head和tail兩個(gè)命令來(lái)完成,而且head和tail日常使用更加方便。

用法示例

準(zhǔn)備工作

輸入下面命令,生成一個(gè)測(cè)試用的文件。

$ seq -f "Line No %g" 10 > lines.txt

只顯示文本的前3行

可以通過(guò)head命令來(lái)完成,具體命令和輸出如下:

$ head -n 3 lines.txt

Line No 1

Line No 2

Line No 3

或者通過(guò)sed命令來(lái)完成,具體命令和輸出如下:

$ sed -n '1,3p' lines.txt

Line No 1

Line No 2

Line No 3

awk命令也可以完成

$ awk 'NR=3' lines.txt

Line No 1

Line No 2

Line No 3

只顯示文本的最后3行

使用tail命令來(lái)完成,具體命令和輸出如下:

$ tail -n 3 lines.txt

Line No 8

Line No 9

Line No 10

只顯示文本的第5行到最后1行

使用tail命令來(lái)完成的方法:

$ tail -n +5 lines.txt

Line No 5

Line No 6

Line No 7

Line No 8

Line No 9

Line No 10

sed命令來(lái)完成:

$ sed -n '5,$p' lines.txt

Line No 5

--略--

Line No 10

用awk來(lái)完成:

$ awk 'NR>=5' lines.txt

Line No 5

--略--

Line No 10

只顯示文本的倒數(shù)第3行到第1行

用head來(lái)完成:

$ head -n -2 lines.txt

Line No 1

Line No 2

Line No 3

Line No 4

Line No 5

Line No 6

Line No 7

Line No 8

只顯示文本的第6行到第8行

用head和tail兩個(gè)工具:

$ lines.txt head -n 8 | tail -n 3

Line No 6

Line No 7

Line No 8

sed的方法:

$ sed -n '6,8p' lines.txt

Line No 6

Line No 7

Line No 8

awk的方法:

$ awk '(NR>=6)(NR=8)' lines.txt

Line No 6

Line No 7

Line No 8

只顯示文本奇數(shù)行或偶數(shù)行

sed命令生成奇數(shù)行

$ sed -n '1~2p' lines.txt

Line No 1

Line No 3

Line No 5

Line No 7

Line No 9

sed命令生成偶數(shù)行

$ sed -n '0~2p' lines.txt

Line No 2

Line No 4

Line No 6

Line No 8

Line No 10

awk命令生成奇數(shù)行

$ awk 'NR%2' lines.txt

Line No 1

Line No 3

Line No 5

Line No 7

Line No 9

awk命令生成偶數(shù)行

$ awk '(NR+1)%2' lines.txt

Line No 2

Line No 4

Line No 6

Line No 8

Line No 10

小結(jié)

linux系統(tǒng)的一個(gè)有名的特點(diǎn)是絕大多少文件都是文本文件,這些文件都可以通過(guò)上面的方法來(lái)查看特定的行。另外linux命令行工具也非常靈活,完成一件任務(wù),不是只有一種方法,有很多方法可以實(shí)現(xiàn),這也是linux好玩的地方。在文本過(guò)濾方面,sed和awk命令還有很多強(qiáng)大的用法,大家有興趣的話可以深入研究一下。

標(biāo)簽:保定 山南 河池 樂山 淘寶邀評(píng) 滄州 榆林 河北

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《利用linux命令行工具進(jìn)行文本行過(guò)濾的方法》,本文關(guān)鍵詞  利用,linux,命令行,工具,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《利用linux命令行工具進(jìn)行文本行過(guò)濾的方法》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于利用linux命令行工具進(jìn)行文本行過(guò)濾的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章