利用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系统的一个有名的特点是绝大多少文件都是文本文件,这些文件都可以通过上面的方法来查看特定的行。另外linux命令行工具也非常灵活,完成一件任务,不是只有一种方法,有很多方法可以实现,这也是linux好玩的地方。在文本过滤方面,sed和awk命令还有很多强大的用法,大家有兴趣的话可以深入研究一下。
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布投稿,分享有金币奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务 请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长,可领回失去的金币,并额外有奖!
6. 如遇到加密压缩包,默认解压密码为"www.zyfx8.cn",如遇到无法解压的请联系管理员!
本站部分文章、资源来自互联网,版权归原作者及网站所有,如果侵犯了您的权利,请及时联系我站删除。免责声明
资源分享吧 » 利用linux命令行工具进行文本行过滤的方法
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 织梦模板使用说明
- 你下载的织梦模板并不包括DedeCMS使用授权,根据DedeCMS授权协议,除个人非盈利站点外,均需购买DedeCMS商业使用授权。购买地址: http://www.desdev.cn/service-dedecms.html