16boke - 一路博客

linux命令之head命令

当要查看上千行的大文件时,我们可不会用cat命令把整个文件内容给打印出来,相反,我们可能只需要看文件的一小部分地内容(例如文件的前十行和后十行),我们也有可能需要打印出来前n行或后n行,也有可能打印除了前n行或后n行之外的所有行,也有可能需要实时监控log日志的更新,那么怎么实现呢?下面一起来看一下linux下使用率极高的head ,tail两个命令。

一、head命令详解

首先,输入head --help查看帮助信息:

[root@atlas ~]# head --help

用法:head [选项]... [文件]...

将每个指定文件的头10 行显示到标准输出。

如果指定了多于一个文件,在每一段输出前会给出文件名作为文件头。

如果不指定文件,或者文件为"-",则从标准输入读取数据。

长选项必须使用的参数对于短选项时也是必需使用的。

-c,  --bytes=[-]K 显示每个文件的前K 字节内容;

如果附加"-"参数,则除了每个文件的最后K字节数据外

显示剩余全部内容

-n, --lines=[-]K 显示每个文件的前K 行内容;

如果附加"-"参数,则除了每个文件的最后K 行外显示

剩余全部内容

-q, --quiet, --silent 不显示包含给定文件名的文件头

-v, --verbose 总是显示包含给定文件名的文件头

--help 显示此帮助信息并退出

--version 显示版本信息并退出

K 后面可以跟乘号:

b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024,

GB 1000*1000*1000, G 1024*1024*1024, 对于T, P, E, Z, Y 同样适用。

请向bug-coreutils@gnu.org 报告head 的错误

GNU coreutils 项目主页:

GNU 软件一般性帮助:

请向报告head 的翻译错误

要获取完整文档,请运行:info coreutils 'head invocation'

head命令的语法格式为:head [OPTION]... [FILE]...

1、使用head命令查看文件内容前十行

head命令默认显示文件前十行

$ cat -n test.txt
1 a
2 b
3 c
4 d
5 e
6 f
7 g
8 h
9 i
10 j
11 k
12 l
13 m
14 n
$ head test.txt
a
b
c
d
e
f
g
h
i
j

2、-n参数,显示test.txt文件的前3行

-n, --lines=[-]K         print the first K lines instead of the first 10;

[root@atlas ~]# head -n3 test.txt
  a
  b
  c

3、-n参数显示除了文件最后3行外的所有内容

加上'-',打印所有内容除了最后的K行。

[root@atlas ~]# cat test.txt
  a
  b
  c
  d
  e
  f
  g
  h
  i
  j
  k
  l
  m
  n
[root@atlas ~]# head -n -3 test.txt
  a
  b
  c
  d
  e
  f
  g
  h
  i
  j
  k

4、-c参数,按文件内容大小来打印,打印前2个字节的内容

$ head -c 2 test.txt
a

5、-c参数,打印除了最后2个字节的文件内容

$ head -c -2 test.txt
a
b
c
d
e
f
g
h
i
j
k
l
m


head