• 搞懂head 和 tail 命令


    情景

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

    图解

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

    这里写图片描述

                                                                           除了最后k行                                                                   从k行开始

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

    举例

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

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

    head 命令

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

    [bjchengpeng@hz-10-120-241-113 logs]$ head -n 3 testfile 
    1
    2
    3
    [bjchengpeng@hz-10-120-241-113 logs]$ head -n +3 testfile 
    1
    2
    3
    [bjchengpeng@hz-10-120-241-113 logs]$ head -3 testfile      
    1
    2
    3
    

     

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

    [bjchengpeng@hz-10-120-241-113 logs]$ head -n -3 testfile 
    1
    2
    3
    4
    5
    6
    7

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

     tail 命令

    [bjchengpeng@hz-10-120-241-113 logs]$ tail -n 3 testfile 
    8
    9
    10
    [bjchengpeng@hz-10-120-241-113 logs]$ tail -n -3 testfile 
    8
    9
    10
    [bjchengpeng@hz-10-120-241-113 logs]$ tail -3 testfile    
    8
    9
    10 
    [bjchengpeng@hz-10-120-241-113 logs]$ tail -n +3 testfile  
    3
    4
    5
    6
    7
    8
    9
    10

     tail -n -k 命令和 tail -n k 结果一样,

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

    来一个常规第题目:显示第3-6行

    [bjchengpeng@hz-10-120-241-113 logs]$ tail -n +5 testfile | head -2 
    5
    6
    [bjchengpeng@hz-10-120-241-113 logs]$ cat testfile | head -n -4 | tail -2               
    5
    6
    [bjchengpeng@hz-10-120-241-113 logs]$ head -n -4  testfile | tail -2                     
    5
    6
    [bjchengpeng@hz-10-120-241-113 logs]$ head -6 testfile | tail -2
    5
    6
    

    总结

    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行。)

    4. tail -n +k 是从第K行开始输出,head -n -k 是最后k行不要
  • 相关阅读:
    2021年1月9日 Why retailers everywhere should look to China
    #微信小程序 #添加域名https://api.weixin.qq.com ,提示“为保障帐号安全不可使用此域名地址,请修改”
    用户画像分析与场景应用
    数据仓库组件:HBase集群环境搭建和应用案例
    标签管理体系之业务应用
    数据仓库组件:Hive环境搭建和基础用法
    数据应用场景之标签管理体系
    Solon rpc 之 SocketD 协议
    Solon rpc 之 SocketD 协议
    Solon rpc 之 SocketD 协议
  • 原文地址:https://www.cnblogs.com/chengpeng15/p/9333651.html
Copyright © 2020-2023  润新知