Linux 情景 linux--一张图搞懂 head -n 和 tail -n

stack · 2017年04月05日 · 最后由 codeskyblue 回复于 2017年04月07日 · 1919 次阅读

情景 linux--一张图搞懂 head -n 和 tail -n

情景

会点 linux 命令的人都知道 head -n k 和 tail -n k(k≥0)的作用,但却不知道还支持 head -n -k 和 tail -n +k 的用法, 更不知道有着怎样的作用了。

图解

下面,用一张图让你搞懂它们:

备注:方框表示文件全部内容,绿色部分表示命令产生的结果;

举例

创建一个文件,文件共 10 行,每行的内容依次为 1-10 数字,如下:

$ cat testfile 
1
2
3
4
5
6
7
8
9
10
$ cat testfile | wc -l 
10

当 k=3 时,分别执行上述命令:

$ head -n 3 testfile 
1
2
3
$ head -n +3 testfile 
1
2
3

由此可见,head -n k 和 head -n +k 意义相同;

$ head -n -3 testfile 
1
2
3
4
5
6
7

-k 的意义是除了最后 k 行的所有行。

$ tail -n 3 testfile 
8
9
10
$ tail -n -3 testfile 
8
9
10

由此可见,tail -n k 和 tail -n -k 意义相同;

$ tail -n +3 testfile 
3
4
5
6
7
8
9
10

+k 的意义是从第 k 行开始,输出所有行;

总结

  1. head -n k=head -n +ktail -n k=tail -n -k,可以简单记忆为头正尾负

  2. 无论 k 前面的符号怎样,tail 都是输出尾部内容,head 都是输出头部内容的;

  3. 特别注意 tail -n +k,这里的 k 表示从第 K 行开始;(因此上例中,head -n -3 输出 7 行,而 tail -n +3 输出 8 行。)

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 1 条回复 时间 点赞

总结的很好

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册