1、命令简介
head:用于显示文本文件的开头部分。默认情况下,它会显示文件的前10行内容,但可以使用参数来指定要显示的行数。
2、命令语法
head [OPTION]... [FILE]...
3、命令描述
head
命令是一个命令行实用程序,用于打印指定文件的前10行内容。如果提供了多个文件名,则每个文件的数据都会显示其文件名之前。
我们可以通过使用 -n 命令行选项来更改 head 命令打印的行数。不仅可以更改行数,还可以使用 -c 命令行选项将 head 命令的输出限制为特定数量的字节。
为了兼容性,head 还支持一种过时的选项语法 ‘-[NUM][bkm][clqv]’,仅在首次在文件名之前指定时才会被识别。NUM 是一个十进制数字,可以选择地跟随一个大小字母(‘b’、‘k’、‘m’),其中 b 表示块,k 表示千字节,m 表示兆字节。在与 -c
一起使用时,NUM 表示字节数,在与 -n
一起使用时,NUM 表示行数。针对当前 Linux 系统的脚本应该使用 ‘-c NUM’ 或 ‘-n NUM’。
退出状态为零表示成功,非零值表示失败。
4、命令选项
选项 | 描述 |
-c, --bytes=[-]NUM | 打印每个文件的前 NUM 字节; 以前导 '-' 打印每个文件的除 最后 NUM 字节外的所有内容 |
-n, --lines=[-]NUM | 打印每个文件的前 NUM 行, 而不是前 10 行; 以前导 '-' 打印每个文件的 除最后 NUM 行外的所有内容 |
-q, --quiet, --silent | 不显示给出文件名的标题 |
-v, --verbose | 总是显示给出文件名的标题 |
-z, --zero-terminated | 行分隔符为 NUL,而不是换行符 |
--help | 显示帮助信息并退出 |
--version | 输出版本信息并退出 |
5、使用示例
1)两个名为test1.txt和test2.txt的文件
$ cat test1.txt a) 1122 b) 2233 c) 3344 d) 4455 e) 5566 f) 6677 g) 7788 h) 8899 i) 9910 j) 1011 k) 1112 l) 1213 m) 1314 n) 1415 o) 1516 p) 1617 $ cat test2.txt a) abc b) bcd c) cdf d) default e) efd f) fhd g) ghi h) hello i) illl j) jey k) kill l) leg m) message n) cake o) orange p) palte
2)在参数中只传递文件名将只显示文件的前10行
$ head test1.txt a) 1122 b) 2233 c) 3344 d) 4455 e) 5566 f) 6677 g) 7788 h) 8899 i) 9910 j) 1011
3)可以在参数中传递多个文件名,这将输出每个文件的前10行到标准输出,并带有表示要显示哪个文件的头
$ head test1.txt test2.txt ==> test1.txt <== a) 1122 b) 2233 c) 3344 d) 4455 e) 5566 f) 6677 g) 7788 h) 8899 i) 9910 j) 1011 ==> test2.txt <== a) abc b) bcd c) cdf d) def e) efd f) fhd g) ghi h) hello i) illl j) jey
4)文件由头文件(即文件名)分隔,通过-q选项来抑制头行。这对于合并文件很有用
$ head -q test1.txt test2.txt a) 1122 b) 2233 c) 3344 d) 4455 e) 5566 f) 6677 g) 7788 h) 8899 i) 9910 j) 1011 a) abc b) bcd c) cdf d) def e) efd f) fhd g) ghi h) hello i) illl j) jey
5)head命令打印的默认行数是10,但我们可以根据需求更改这个数字。使用-n命令行选项可以做到
$ head -n 5 test1.txt test2.txt ==> test1.txt <== a) 1122 b) 2233 c) 3344 d) 4455 e) 5566 ==> test2.txt <== a) abc b) bcd c) cdf d) def e) efd
6)使用"head -n NUM [Filename]"命令时,必须指定整数NUM,否则将导致错误。
我们可以通过传递-c选项来限制显示的字节数。这将限制传递给-c选项的字节
$ head -c 32 test2.txt a) abc b) bcd c) cdf
7)可以在数字后面使用乘数后缀来指定要显示的字节数。b乘以512,kB乘以1000,K乘以1024,MB乘以1000000,M乘以1048576,以此类推。
$ head -c 2kB test1.txt test2.txt ==> test1.txt <== a) 1122 b) 2233 c) 3344 d) 4455 e) 5566 f) 6677 g) 7788 h) 8899 i) 9910 j) 1011 k) 1112 l) 1213 m) 1314 n) 1415 o) 1516 p) 1617 ==> test2.txt <== a) abc b) bcd c) cdf d) default e) efd f) fhd g) ghi h) hello i) illl j) jey k) kill l) leg m) message n) cake o) orange p) palte
8)可以将head命令与其他一些linux命令结合起来执行某些操作
$ head -n 15 test1.txt | tail -10 f) 6677 g) 7788 h) 8899 i) 9910 j) 1011 k) 1112 l) 1213 m) 1314 n) 1415 o) 1516