【背景】
head/tail是linux中常见的文本选取命令,用以选取头部/尾部的若干行文本。
【命令格式】
head [-n number] filename
不加选项的情况下默认输出头部的10行文本。使用-n选项搭配数字可以指定需要输出的文本行数量,其中若number为负数时表示输出前面所有的行,但不包括最后的|number|行。
tail [-n number] filename
和head基本相似,但是表示输出末尾的文本。另外一个区别是number如果带+号表示输出末尾的所有文本,但不包括前number-1行。
【常见用法】
1.使用head输出前2行文本
seq 5 | head -n 2
1
2
上述的seq命令将输出5行数字,用head取出了前两行。
2.使用head输出除最后两行之外的文本
seq 5 | head -n -2
1
2
3
-n参数设定为-2表示不输出最后的2行。
3.使用tail输出最后的两行文本
seq 5 | tail -n 2
4
5
上述命令取出文本的最后两行。
4.使用tail输出除前面两行之外的文本
seq 5 | tail -n +3
3
4
5
注意这里写的是+3,加号不可缺少,且3-1=2表示不输出最前面两行文本。
5.输出不断增长的文件
有些文件的内容是不断增加的,例如日志文件,此时依然可以用tail命令看到新增加的内容。
tail -f filename
上述命令使用了-f(--follow)选项,当filename的尾部内容有更新时会有输出。此外还可以用-s设定睡眠间隔,这样就相当于设置了监视文件更新的时间间隔。