• Linux 命令:head


    1. 写在前面

    本文主要介绍 Linux head 命令:可用于查看文件的开头部分的内容,有一个常用的参数 -n 用于显示行数,默认为 10,即显示 10 行的内容。

    关注 公众号 获取最新博文: 滑翔的纸飞机

    2. head 命令

    head 命令的基本语法是:

    head [OPTION]... [FILE]...
    

    示例准备两个文件:state.txt 和 capital.txt,包含国家和城市名称。文件可参考上篇博文,本文在 Ubuntu 系统下验证,上篇博文在 Mac 系统验证,部分参数存在差异,具体可 man head/tail 查看;

    默认,不带任何选项,只显示指定文件的前 10 行。

    例如:

    root@dev:~/linux/head# head state.txt
    ---------------------------------------------------
    China
    Mongolia
    North Korea
    South Korea
    Japan
    Philippines
    Vietnam
    Laos
    Cambodia
    Myanmar
    

    参数:

    参数描述
    -n显示的行数
    -c显示的字节数
    -q隐藏文件名
    -v显示文件名

    2.1 示例

    (1)-n num 显示文件前 num 行内容

    必须在命令中指定 “num”,否则会显示错误。

    root@dev:~/linux/head# head -n 5 state.txt
    ---------------------------------------------------
    China
    Mongolia
    North Korea
    South Korea
    Japan
    

    (2)-c num 显示指定字节数

    打印指定文件前 "num"字节。换行符算作一个字符,因此如果 head 打印出一个换行符,它将算作一个字节。

    root@dev:~/linux/head# head -c 6 state.txt
    ---------------------------------------------------
    China
    

    (3)-q 不输出文件名

    如果给出的文件超过 1 个,则使用该命令。使用该命令时,每个文件中的数据前面都没有文件名。

    不使用 -q 选项:输出文件名;

    root@dev:~/linux/head# head state.txt capital.txt
    ---------------------------------------------------
    ==> state.txt <==
    China
    Mongolia
    North Korea
    South Korea
    Japan
    Philippines
    Vietnam
    Laos
    Cambodia
    Myanmar
    
    ==> capital.txt <==
    Beijing
    Shanghai
    Guangzhou
    Shenzhen
    Tianjin
    Hong Kong
    Nanking
    Macau
    Tibet
    Sian
    

    使用 -q 选项:不输出文件名;

    root@dev:~/linux/head# head -q  state.txt capital.txt
    ---------------------------------------------------
    China
    Mongolia
    North Korea
    South Korea
    Japan
    Philippines
    Vietnam
    Laos
    Cambodia
    Myanmar
    Beijing
    Shanghai
    Guangzhou
    Shenzhen
    Tianjin
    Hong Kong
    Nanking
    Macau
    Tibet
    Sian
    

    (4)-v 以文件名开头

    使用该选项后,指定文件中的数据总是以文件名开头。

    root@dev:~/linux/head# head -v state.txt
    ---------------------------------------------------
    ==> state.txt <==
    China
    Mongolia
    North Korea
    South Korea
    Japan
    Philippines
    Vietnam
    Laos
    Cambodia
    Myanmar
    

    (5)打印 M 行和 N 行之间的行(M>N)

    为此,我们使用 headtail 和 pipeline(|) 命令。命令为:head -M file_name | tail +N,因为 head 命令会先打印 M 行,然后从 M 行开始,tail 命令会从 +N 开始剪切行,直到最后一行;

    我们也可以使用 head -M file_name | tail +(M-N+1) 命令,因为 head 命令会先打印 M 行,然后从 M 行开始,tail 命令会从最后一行剪切 (M-N+1) 行。例如,我们要打印 state.txt 文件中 10 到 20 行之间的内容。

    root@dev:~/linux/head# head -n 20 state.txt | tail -10
    ---------------------------------------------------
    Thailand
    Malaysia
    Brunei Darussalam
    Singapore
    Indonesia
    East Timor
    Nepal
    Bhutan
    Bengal
    India
    

    (6)pipeline(|) 使用 head

    head 命令可以与其他命令进行管道连接。在下面的示例中,ls 命令的输出被管道输送到 head,以只显示最近修改的三个文件或文件夹。

    显示所有最近修改或最近使用的文件:

    root@dev:~/linux/head# ls -t
    ---------------------------------------------------
    d.txt  c.txt  b.txt  a.txt  capital.txt  state.txt
    

    输出最近使用的三个文件:

    root@dev:~/linux/head# ls -t | head -n 3
    ---------------------------------------------------
    d.txt
    c.txt
    b.txt
    

    还可以与一个或多个过滤器进行管道连接,以进行额外处理。例如,排序过滤器可用于按字母顺序对最近使用的三个文件或文件夹进行排序。

    root@dev:~/linux/head# ls -t | head -n 3 | sort
    ---------------------------------------------------
    b.txt
    c.txt
    d.txt
    
    感谢您花时间阅读文章!
    关注公众号不迷路!
  • 相关阅读:
    javaweb01
    css实现排行榜样式(vue组件)
    美团面试:如何实现线程任务编排?
    功能基础篇3——Python中的输入输出、文件读写、序列化
    中兴面试-Java开发
    java类加载过程
    实验四 图像增强—灰度变换之直方图变换
    我又开始贩卖焦虑了,机器视觉兄弟们,打工这生意盘不活了?让人逃离北上广深,是毒鸡汤吗?
    shell三剑客-----sed命令
    并查集模板及思想
  • 原文地址:https://blog.csdn.net/u011521019/article/details/139456108