您好,登錄后才能下訂單哦!
小編給大家分享一下如何使用linux命令行工具進行文本行過濾,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
常用命令行工具
接下來主要使用的是head,tail,sed和awk,這幾個工具。其中sed和awk工具非常強大,使用它們來進行文本的過濾可能有點大材小用,不過基本上所有的任務都可以通過head和tail兩個命令來完成,而且head和tail日常使用更加方便。
用法示例
準備工作
輸入下面命令,生成一個測試用的文件。
$ seq -f "Line No %g" 10 > lines.txt
只顯示文本的前3行
可以通過head命令來完成,具體命令和輸出如下:
$ head -n 3 lines.txt
Line No 1
Line No 2
Line No 3
或者通過sed命令來完成,具體命令和輸出如下:
$ 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命令來完成,具體命令和輸出如下:
$ tail -n 3 lines.txt
Line No 8
Line No 9
Line No 10
只顯示文本的第5行到最后1行
使用tail命令來完成的方法:
$ tail -n +5 lines.txt
Line No 5
Line No 6
Line No 7
Line No 8
Line No 9
Line No 10
sed命令來完成:
$ sed -n '5,$p' lines.txt
Line No 5
--略--
Line No 10
用awk來完成:
$ awk 'NR>=5' lines.txt
Line No 5
--略--
Line No 10
只顯示文本的倒數第3行到第1行
用head來完成:
$ 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兩個工具:
$ < 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
只顯示文本奇數行或偶數行
sed命令生成奇數行
$ sed -n '1~2p' lines.txt
Line No 1
Line No 3
Line No 5
Line No 7
Line No 9
sed命令生成偶數行
$ sed -n '0~2p' lines.txt
Line No 2
Line No 4
Line No 6
Line No 8
Line No 10
awk命令生成奇數行
$ awk 'NR%2' lines.txt
Line No 1
Line No 3
Line No 5
Line No 7
Line No 9
awk命令生成偶數行
$ awk '(NR+1)%2' lines.txt
Line No 2
Line No 4
Line No 6
Line No 8
Line No 10
以上是“如何使用linux命令行工具進行文本行過濾”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。