前言

head命令用来查看文件内容的前多少行或多少字节的内容。还可以通过awk、sed等命令来获取前多少行,但是相比之下head更擅长轻量,并且比其他都快速

命令用法

-c 用来获取前多少字节的内容,还可加上单位,默认是字节。1(byte) 、1k(1KB)、1m(1MB)

-n用于获取前多上行

-q 获取多个文件的时候不显示文件头部

-v 获取多个文件的内容是显示头部,也是默认选项

常见用法举例

获取前多少字节内容

–c n ,获取前n个字节的内容。可以加上单位1(byte) 、1k(1KB)、1m(1MB)默认但是是字节

-c 10     所以这里是10 byte,获取前两个字符(ASCII编码的时候)

   1: [root@master lianxi]# head -c 10 test
   2: lwgarmstro[root@master lianxi]# –

-c 1k 获取前1KB大小的内容,-c 1m 就是获取前1MB字节大小的内容

   1: [root@master lianxi]# head -c 1k /etc/passwd
   2: root:x:0:0:root:/root:/bin/bash
   3: bin:x:1:1:bin:/bin:/sbin/nologin
   4: daemon:x:2:2:daemon:/sbin:/sbin/nologin
   5: adm:x:3:4:adm:/var/adm:/sbin/nologin
   6: lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
   7: sync:x:5:0:sync:/sbin:/bin/sync
   8:        ......后面省略

获取前多少行内容

-n number ,比如 –n 3 就是获取前3行内容

   1: [root@master lianxi]# cat -n /etc/passwd | head -n 3
   2:      1  root:x:0:0:root:/root:/bin/bash
   3:      2  bin:x:1:1:bin:/bin:/sbin/nologin
   4:      3  daemon:x:2:2:daemon:/sbin:/sbin/nologin

同时获取多个文件的前多上行或字节的内容

获取多个文件的前多少行或字节 的内容时候,默认会显示头部信息。

-v 显示头部信息(默认),-q 不显示头部信息

   1: [root@master lianxi]# head -v -n 1 1.lua  2.lua
   2: ==> 1.lua <==
   3: arr = {23,21,89,289,34,23,1,32,434,21,1}
   4:
   5: ==> 2.lua <==
   6: print("hello world")
   1: [root@master lianxi]# head -q -n 1 1.lua  2.lua
   2: arr = {23,21,89,289,34,23,1,32,434,21,1}
   3: print("hello world")
特殊用法

1)有这样的需求,有时会把文件的一些信息写在文件的前多少个字节,比如一些标志信息,写在文件头部,我们可以通过head –c 来获取前多少个字节的头部信息

   1: [root@master lianxi]# head -c 10 data
   2: [datafile][root@master lianxi]#

2)-n number,可以简写成 –number ,比如获取前5行,可以 –n 5 ,也可以 –5

   1: [datafile][root@master lianxi]# head -5 /etc/passwd
   2: root:x:0:0:root:/root:/bin/bash
   3: bin:x:1:1:bin:/bin:/sbin/nologin
   4: daemon:x:2:2:daemon:/sbin:/sbin/nologin
   5: adm:x:3:4:adm:/var/adm:/sbin/nologin
   6: lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

3)行号可以是负数,则表示从第一行开始到倒数第n –1 行,比如 –n –2 则表示从第一行到倒数第3行

   1: [root@master lianxi]# wc -l 1.lua
   2: 7 1.lua
   3: [root@master lianxi]# cat -n 1.lua  | head -n -5
   4:      1  arr = {23,21,89,289,34,23,1,32,434,21,1}
   5:      2
   6: [root@master lianxi]#

4)获取文件前多少行也可以用sed或awk,但是相比起来head更快

总结

head命令,获取文件前多少行内容。


转载自:http://www.th7.cn/system/lin/201311/46748.shtml