• 一、head
  • 1.1、打印前10行
  • 1.2、指定打印前几行
  • 1.3、打印除了最后M行之外所有的行
  • 二、tail
  • 2.1 打印文件最后10行
  • 2.2、可以用下面的代码从 stdin 中读取输入
  • 2.3、打印最后5行
  • 2.4、打印除了前M行之外所有的行
  • 2.5 -f


一、head

1.1、打印前10行

语法:
$ head file #默认打印前10行

seq 20 | head  #可见head也可以从stdin中读取数据

Linux脚本攻略学习笔记之head、tail详解_tail详解

1.2、指定打印前几行

head -n 4 file

1.3、打印除了最后M行之外所有的行

head -n -M file # -M 表示一个负数,并非选项

seq  11 | head -n -5
打印除了最后5行外

Linux脚本攻略学习笔记之head、tail详解_读取数据_02

二、tail

2.1 打印文件最后10行

与head一样 默认打印10行,只是打印文件最后10行
语法:$ tail file

2.2、可以用下面的代码从 stdin 中读取输入

$ cat text | tail

2.3、打印最后5行

$ tail -n 5 file

2.4、打印除了前M行之外所有的行

语法 :tail -n +(M+1) file

打印除前5行之外的所有行, M+1=6 ,因此使用下列命令:

seq 11 | tail -n +6
 打印 除了前面5行,

Linux脚本攻略学习笔记之head、tail详解_vim_03

2.5 -f

tail 有一个特殊的选项 -f 或
–follow ,它们会使 tail 密切关注文件中新添加的内容,并随着数据的增加持续保持更新:
语法 $ tail -f growing_file

用vim 编辑file.txt 文件如下

Linux脚本攻略学习笔记之head、tail详解_head实例演示_04

再登录另外一个xshell

PID=Linux脚本攻略学习笔记之head、tail详解_head实例演示_05PID

Linux脚本攻略学习笔记之head、tail详解_vim_06


看到打印并没有结束

再回到file.txt编辑的xshell上保存file.txt,并退出vim

回到tail的xshell上看到 打印结束

Linux脚本攻略学习笔记之head、tail详解_vim_07


这就是tail 一个很有意思的特性:当某个给定进程结束之后, tail 也会随之终结