6.3.3 数据撷取

简介: 6.3.3 数据撷取

我们可以将输出的数据作一个最简单的撷取,那就是取出文件前面几行 (head) 或取出后面几行 (tail) 文字的功能。 不过,要注意的是, head 与 tail 都是以“行”为单位来进行数据撷取的。

head (取出前面几行)

head这个东西的用法自然显示出一个文件的前几行,没有加上-n这个选项,默认只显示十行,如果只要一行,那就加入“head -n 1 filename ”。


另外那个 -n 选项后面的参数较有趣,如果接的是负数,例如上面范例的-n -100时,代表列前的所有行数, 但不包括后面100行。举例来说 CentOS 7.1 的 /etc/mandb.conf 共有131行,则上述的指令“head -n -100 /etc/man_db.conf” 就会列出前面31行,后面100行不会打印出来了。


tail(取出后面几行)

有head自然就有tail,tail的用法跟head的用法差不多类似,只是显示的是后面几行。默认是显示十行,若要显示非十行,就加-n number的选项。


范例一的内容其实与head -n -xx有异曲同工之妙。当下达“tail -n +100/etc/man_db.conf” 代表该文件从100行以后都会被列出来,同样的,在man_db.conf共有131行,因此第100~131行就会被列出来。 前面的99行都不会被显示出来。


至于范例二中,由于/var/log/messages随时会有数据写入,你想要让该文件有数据写入时就立刻显示到屏幕上, 就利用 -f 这个选项,他可以一直侦测/var/log/messages这个文件,新加入的数据都会被显示到屏幕上。 直到你按下[crtl]-c才会离开tail的侦测。由于 messages 必须要 root 权限才能看,所以该范例得要使用 root 来查询。


例题:假如我想要显示 /etc/man_db.conf 的第 11 到第 20 行呢?答:在第 11 到第 20 行,那么我取前 20 行,再取后十行,所以结果就是:“ head -n 20/etc/man_db.conf | tail -n 10 ”,这样就可以得到第 11 到第 20 行之间的内容了。


这两个指令中间有个管线 (|) 的符号存在,这个管线的意思是:“前面的指令所输出的讯息,请通过管线交由后续的指令继续使用”的意思。 所以, head -n 20 /etc/man_db.conf 会将文件内的 20 行取出来,但不输出到屏幕上,而是转交给后续的 tail 指令继续处理。 因此 tail“不需要接文件名”,因为 tail 所需要的数据是来自于 head 处理后的结果。


例题:承上一题,那如果我想要列出正确的行号呢?就是屏幕上仅列出 /etc/man_db.conf 的第 11 到第 20 行,且有行号存在?答:我们可以通过 cat -n 来带出行号,然后再通过head/tail 来撷取数据即可!所以就变成如下的模样了: cat -n /etc/man_db.conf | head -n 20 |tail -n 10。

相关文章
|
数据采集 数据挖掘 程序员
【python基础知识】17.模块的概念以及如何引入
【python基础知识】17.模块的概念以及如何引入
135 0
|
10月前
|
存储 运维 关系型数据库
【收藏】运维常见的22个故障排查和10个问题解决技巧大汇总!
本文汇总了运维过程中常见的故障及解决方法,包括shell脚本不执行、crontab输出结果控制、telnet/ssh很慢、只读文件系统、文件删除后磁盘空间未释放、find命令性能优化、无法获取网关MAC地址、http服务无法启动、too many open files错误、ibdata1和mysql-bin日志占用磁盘空间等问题。通过这些实例,帮助读者积累经验,提高故障排查能力。
808 2
|
Web App开发 数据采集 Java
【Python】已完美解决:selenium.common.exceptions.SessionNotCreatedException: Message: session not created
【Python】已完美解决:selenium.common.exceptions.SessionNotCreatedException: Message: session not created
1317 0
|
11月前
|
存储 云计算 虚拟化
什么是云计算
云计算通过租用远程服务器,为用户提供可无限扩展、按需使用的计算服务与数据存储,无需自建服务器。其特点包括虚拟化技术、动态可扩展、按需部署、高灵活性和可靠性、高性价比及可扩展性。根据不同需求,云计算服务可分为IaaS、PaaS和SaaS三种类型,共同构成云计算堆栈。
516 3
|
JavaScript 前端开发 数据安全/隐私保护
【vue】自定义指令实现 复制、长按、水印 功能
【vue】自定义指令实现 复制、长按、水印 功能
648 0
|
存储 缓存 算法
【数据结构查找算法篇】----散列查找【实战项目】
【数据结构查找算法篇】----散列查找【实战项目】
185 10
【鸿蒙软件开发】ArkTS常见组件之单选框Radio和切换按钮Toggle
【鸿蒙软件开发】ArkTS常见组件之单选框Radio和切换按钮Toggle
1127 0
|
SQL 运维 资源调度
开源大数据可观测性方案实践 - 助力集群运维智能化、便捷化
在本篇文章中,我们将介绍大数据集群领域所需的可观测性,实践大数据集群可观测所需要的条件和面临的挑战,以及阿里云EMR 产品如何通过 EMR Doctor 实现大数据可观测并向用户提供相关能力。
17628 4
开源大数据可观测性方案实践 - 助力集群运维智能化、便捷化
|
前端开发 Java Linux
Docker使用OpenJDK镜像导致验证码错误:java.lang.NullPointerException at sun.awt.FontConfiguration.getVersion
Docker使用OpenJDK镜像导致验证码错误:java.lang.NullPointerException at sun.awt.FontConfiguration.getVersion
3515 0
Docker使用OpenJDK镜像导致验证码错误:java.lang.NullPointerException at sun.awt.FontConfiguration.getVersion
|
移动开发 小程序 前端开发
h5,小程序飞入购物车(抛物线绘制运动轨迹点)
小程序飞入购物车,一次性解决!
h5,小程序飞入购物车(抛物线绘制运动轨迹点)