首页IT科技linux过滤文件大小(利用linux命令行工具进行文本行过滤的方法)

linux过滤文件大小(利用linux命令行工具进行文本行过滤的方法)

时间2025-05-04 11:08:51分类IT科技浏览5423
导读:在日常工作中会遇到需要筛选过滤要查看的日志等文本文件的任务,例如需要查看日志文件的最后几行等。下面总结一下常见的对文本行过滤的方法。一起去看看吧!...

在日常工作中会遇到需要筛选过滤要查看的日志等文本文件的任务            ,例如需要查看日志文件的最后几行等             。下面总结一下常见的对文本行过滤的方法                   。一起去看看吧!

常用命令行工具

接下来主要使用的是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系统的一个有名的特点是绝大多少文件都是文本文件                    ,这些文件都可以通过上面的方法来查看特定的行      。另外linux命令行工具也非常灵活,完成一件任务            ,不是只有一种方法                    ,有很多方法可以实现       ,这也是linux好玩的地方       。在文本过滤方面            ,sed和awk命令还有很多强大的用法                   ,大家有兴趣的话可以深入研究一下                   。

声明:本站所有文章       ,如无特殊说明或标注      ,均为本站原创发布            。任何个人或组织                   ,在未征得本站同意时             ,禁止复制             、盗用                   、采集      、发布本站内容到任何网站             、书籍等各类媒体平台       。如若本站内容侵犯了原著者的合法权益      ,可联系我们进行处理                    。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
如何增加公司网站的曝光量(提升网站曝光率,掌握SEO优化快速排名的秘诀)