前言
经常会遇到一些需求,比如,除去第1行抬头显示,或者显示10到15行数据。这些都是linux 日常运维中遇到的基操,值得记忆。但是网上都是推荐 sed
和 awk
,会绕一个圈,不易记忆。
其实可以使用 head/tail -n
后,使用起来更加的直观。
命令说明
head -n x/-x
/ # seq 1 10 | head -n 2
1
2
/ # seq 1 10 | head -n -2
1
2
3
4
5
6
7
8
说明
head -n x
:从 输入流 **头部 **开始,x 就是结束行号
head -n x
=head -x
tail -n +x/-x
/ # seq 1 10 |tail -n +2
2
3
4
5
6
7
8
9
10
/ # seq 1 10 |tail -n -2
9
10
说明
tail -n +x/-x
:x 就是开始行号,到 输入流 尾部 结束。可以与 head -n
比较记忆。
以 -n
标志行号 的理解,就可以让 head
和 tail
组合更加强大,同时理解会更加的直接。
场景
除去第一行显示
有时候有抬头显示的时候,希望后续的管道处理不带上抬头,但是 中文搜索 都是主力去推 sed
和 awk
的方式去抬头。
但是这些方式都会绕一圈不够直接,可以尝试使用 tail
实现。
tail 方案
# 除去第一行,显示全部
/ # seq 1 10 | tail -n +2
2
3
4
5
6
7
8
9
10
tail -n +2
从第二行开始往后显示,理解就非常的直观。
显示10到15行数据
/ # seq 1 20 |tail -n +10 | head -n 5
10
11
12
13
14
总结
以 -n 标志行号
去理解 tail/head
,可以使一些方案的理解更加直接,不用搭配 sed
和 awk
等复杂的命令。