美文网首页软件测试技能栈我用 LinuxLinux
情景linux--一张图搞懂head -n和tail -n

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

作者: 软件测试技能栈 | 来源:发表于2017-05-22 15:48 被阅读30次

    情景

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

    图解

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

    head-n_tail-n.jpg

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

    举例

    创建一个文件,文件共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行。)

    相关文章

      网友评论

        本文标题:情景linux--一张图搞懂head -n和tail -n

        本文链接:https://www.haomeiwen.com/subject/witixxtx.html