在Linux中,最常见读取文件命令是cat、more和less,但若使用tail和head命令,它能更为方便的实现精确读取。
一、head 命令实例
1、默认,显示开头前10行。
doyoo@doyoo-System-Product-Name:~/workspace$ head message.txt
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Linux version 2.6.38-8-generic (buildd@vernadsky) (gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu3) ) #42-Ubuntu SMP Mon Apr 11 03:31:50 UTC 2011 (Ubuntu 2.6.38-8.42-generic 2.6.38.2)
[ 0.000000] BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: 0000000000000000 - 000000000009b400 (usable)
[ 0.000000] BIOS-e820: 000000000009b400 - 00000000000a0000 (reserved)
[ 0.000000] BIOS-e820: 00000000000e2000 - 0000000000100000 (reserved)
[ 0.000000] BIOS-e820: 0000000000100000 - 000000007ffa0000 (usable)
[ 0.000000] BIOS-e820: 000000007ffa0000 - 000000007ffb8000 (ACPI data)
[ 0.000000] BIOS-e820: 000000007ffb8000 - 000000007ffe0000 (ACPI NVS)
2、显示开头前k行。(以下3行效果一样)
1 2 3 | head -k /etc/passwd(最常见用法) head -n k /etc/passwd head -n +k /etc/passwd |
具体使用时需要将k换成某一个具体的数字,比如5等
3、显示多文件开头前k行,并且不显示文件名的文件头。
1 | head -q -n k file1 file2 file3 |
4、除最后k行外,显示剩余全部内容。
1 | head -n -k /etc/passwd |
二、tail 命令实例
1、默认,显示最后10 行。
1 | tail /etc/passwd |
2、显示最后k行。(以下3行效果一样)
1 2 3 | tail -k etc/passwd (最常见用法) tail -n k /etc/passwd tail -n -k /etc/passwd |
3、显示最后k行,并且不显示文件名的文件头。
1 | tail -q -n k file1 file2 file3 |
4、从开头第k字节处开始输出。
1 | tail -n +k /etc/passwd |
5、参数-f使tail不停地去读最新的内容,因此有实时监视的效果,用Ctrl+c来终止。
1 | tail -f /var/log/messages |
以上只是一些简单实例,若使用sed命令,甚至是awk命令那就更强大了!