2.19Linux下头尾部文件内容读取之head、tail命令
下一篇: 2.20Linux下修改文件时间和创建新文件
linux下读取文件的命令很多,可以根据适合的场景选取相关命令。读取长篇文件适合使用翻页命令,比如more、less命令。想直接将文件内容打印在屏幕上,可以使用cat、tac命令。那么当想读取文件头部前几行、尾部后几行的内容时,这时候就可以使用head和tail命令了,head与tail是以行为单位来进行数据输出的。
下面分别介绍head和tail命令的用法。
head(头部,取出前面几行内容)
[root@lmode ~]# head [-n number] 文件名 选项与参数: -n :后面接数字,代表显示几行的意思
实例1:显示/etc/man.config前面十行数据
[root@lmode ~]# head /etc/man.config [root@lmode ~]# head -n 10 /etc/man.config
上面两种方法都可以,从第一种不带选项n可以看出,当使用head命令不带选项n时,默认显示文件内容前10行。
实例2:当n选项后面行数是负数时
[root@lmode ~]# head -n -20 /etc/man.config
当n选项后面接的是负数时,就是另一种含义了。比如上面的-n -20,代表输出文件内容的所有行数,但不包括最后面20行。当负数指定的绝对值大于文件总行数时,就什么都不输出了。
tail(有头[head]有尾[tail]了,取出后面几行)
tail不仅可以读取文件尾部指定行数的内容,也经常用来读取实时日志文件,十分好用。
[root@lmode ~]# tail [-n number] 文件 选项与参数: -n :后面接数字,代表显示几行的意思 -f :表示实时读取指定的文件内容,要等到按下[ctrl]-c才会结束tail的监测
实例3:显示/etc/man.config文件的最后十行内容
[root@lmode ~]# tail /etc/man.config [root@lmode ~]# tail -n 10 /etc/man.config
tail命令在不加选项n时,默认是读取文件最后10行数据,不够10行按最多读取。其实和head异曲同工了。
实例4:实时读取日志文件内容
[root@lmode ~]# tail -f /var/log/messages <==要等到输入[crtl]-c之后才会离开tail这个命令的监测
上面实例中当messages文件里面有更新数据时,屏幕上就会立刻显示出新内容,这个命令在开发调试时用的非常多。当然你也可以实时读取某个日志文件,比如网站的错误日志,访问日志等。
当使用tail命令选项n后面带负数时,这时候就会报错了。tail本来就是显示文件尾部内容的,所以这时候就不能使用负数了。不过你可以这样用:tail -n +100 /etc/man.config,表示显示/etc/man.config文件100行以后的内容,前面的99行不显示。
linux有一些命令都是成双成对的,非常有意思。比如cat与tac、more与less、head与tail,当然这些成双成对的命令也不全是相反命令,只是在学习时配合着记忆和使用,更能加深记忆和理解。
下一篇: 2.20Linux下修改文件时间和创建新文件