当要查看上千行的大文件时,我们可不会用cat命令把整个文件内容给打印出来,相反,我们可能只需要看文件的一小部分地内容(例如文件的前十行和后十行),我们也有可能需要打印出来前n行或后n行,也有可能打印除了前n行或后n行之外的所有行,也有可能需要实时监控log日志的更新,那么怎么实现呢?下面一起来看一下linux下使用率极高的head ,tail两个命令。
一 head
1.命令参数:
-q 隐藏文件名 -v 显示文件名 -c<字节> 显示字节数 -n<行数> 显示的行数
2.使用实例:
显示文件前n行
[test@VM_0_15_centos ~]$ head -n 5 passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
显示文件前n个字节
[test@VM_0_15_centos ~]$ head -c 100 passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nol
显示文件的除了最后n个字节以外的内容
[test@VM_0_15_centos ~]$ cat passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin halt:x:7:0:halt:/sbin:/sbin/halt [test@VM_0_15_centos ~]$ head -c -100 passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:a
输出文件除了最后n行的全部内容
adm:x:3:4:a[test@VM_0_15_centos ~]$ cat passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin halt:x:7:0:halt:/sbin:/sbin/halt [test@VM_0_15_centos ~]$ head -n -3 passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin
二 tail
tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容
显示在屏幕上,并且不但刷新,使你看到最新的文件内容
1 命令参数
-f 循环读取 -q 不显示处理信息 -v 显示详细的处理信息 -c<数目> 显示的字节数 -n<行数> 显示行数 --pid=PID 与-f合用,表示在进程ID,PID死掉之后结束. -q, --quiet, --silent 从不输出给出文件名的首部 -s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
2 使用实例
显示末尾五行
命令:tail -n 5 test.txt
[test@VM_0_15_centos ~]$ tail -n 5 test.txt 2019-08 2019-09 2019-10 2019-11 2019-12
循环查看文件内容
tail -f test.txt
从第五行开始显示
[test@VM_0_15_centos ~]$ tail -n +5 test.txt 2019-05 2019-06 2019-07 2019-08 2019-09 2019-10 2019-11 2019-12