利用linux命令行工具进行文本行过滤的方法
在日常工作中会遇到需要筛选过滤要查看的日志等文本文件的任务,例如需要查看日志文件的几行等。下面一下常见的对文本行过滤的方法。一起去看看吧!
常用命令行工具
接下来主要使用的是head,tail,sed和awk,这几个工具。其中sed和awk工具非常强大,使用它们来进行文本的过滤可能有点大材小用,不过基本上所有的任务都可以通过head和tail两个命令来完成,而且head和tail日常使用更加方便。
用法示例
准备工作
输入下面命令,生成一个测试用的文件。
$ seq -f "Le No %g" 10 > les.txt
只显示文本的前3行
可以通过head命令来完成,具体命令和输出如下
$ head -n 3 les.txt
Le No 1
Le No 2
Le No 3
或者通过sed命令来完成,具体命令和输出如下
$ sed -n '1,3p' les.txt
Le No 1
Le No 2
Le No 3
awk命令也可以完成
$ awk 'NR<=3' les.txt
Le No 1
Le No 2
Le No 3
只显示文本的3行
使用tail命令来完成,具体命令和输出如下
$ tail -n 3 les.txt
Le No 8
Le No 9
Le No 10
只显示文本的第5行到1行
使用tail命令来完成的方法
$ tail -n +5 les.txt
Le No 5
Le No 6
Le No 7
Le No 8
Le No 9
Le No 10
sed命令来完成
$ sed -n '5,$p' les.txt
Le No 5
--略--
Le No 10
用awk来完成
$ awk 'NR>=5' les.txt
Le No 5
--略--
Le No 10
只显示文本的倒数第3行到第1行
用head来完成
$ head -n -2 les.txt
Le No 1
Le No 2
Le No 3
Le No 4
Le No 5
Le No 6
Le No 7
Le No 8
只显示文本的第6行到第8行
用head和tail两个工具
$ < les.txt head -n 8 | tail -n 3
Le No 6
Le No 7
Le No 8
sed的方法
$ sed -n '6,8p' les.txt
Le No 6
Le No 7
Le No 8
awk的方法
$ awk '(NR>=6)&&(NR<=8)' les.txt
Le No 6
Le No 7
Le No 8
只显示文本奇数行或偶数行
sed命令生成奇数行
$ sed -n '1~2p' les.txt
Le No 1
Le No 3
Le No 5
Le No 7
Le No 9
sed命令生成偶数行
$ sed -n '0~2p' les.txt
Le No 2
Le No 4
Le No 6
Le No 8
Le No 10
awk命令生成奇数行
$ awk 'NR%2' les.txt
Le No 1
Le No 3
Le No 5
Le No 7
Le No 9
awk命令生成偶数行
$ awk '(NR+1)%2' les.txt
Le No 2
Le No 4
Le No 6
Le No 8
Le No 10
小结
lux系统的一个有名的特点是绝大多少文件都是文本文件,这些文件都可以通过上面的方法来查看特定的行。lux命令行工具也非常灵活,完成一件任务,不是只有一种方法,有很多方法可以实现,这也是lux好玩的地方。在文本过滤方面,sed和awk命令还有很多强大的用法,大家有兴趣的话可以深入研究一下。
网络推广
- 5g网络有多快:5g网络网速有多快
- dota2无法连接至steam网络 为什么无法连接dota2网络
- 无线网络信号接收器 无线网络信号接收器怎么用
- 网络延时是什么意思 网络延时是什么原因
- 无线网络不可用:无线网络不可用是什么原因
- 网络广告销售技巧 网络广告销售技巧有哪些
- 智能手机网络设置 智能手机网络设置在哪里
- 为什么找不到无线网络 为什么找不到无线网络信
- 网络这么赚钱:网络怎么能赚到钱
- 为什么无线网络连接不上 为什么无线网连不起来
- 网络上的人际交往 网络上人际交往的优势
- 支付宝网络系统异常 支付宝显示网络异常什么时
- 营销软件:营销软件有哪些
- 无法访问您要使用的功能所在的网络位置
- 网络安全基本知识 网络安全基本知识有哪些
- 什么网络电话最好用 什么网络电话最好用最便宜