zoukankan      html  css  js  c++  java
  • cut命令的使用实例

    cut命令用于文本处理。通过选择列,可以使用此命令从文件中提取文本的一部分。
    cut命令的选项

    Cut基本语法:

    cut OPTION... [FILE]...
    

    选项:

    • -f : 通过指定哪一个字段进行提取。cut命令使用“TAB”作为默认的字段分隔符。
    • -d : “TAB”是默认的分隔符,使用此选项可以更改为其他的分隔符。
    • --complement : 此选项用于排除所指定的字段。
    • --output-delimiter : 更改输出内容的分隔符。
    如何分割

    cut最常用的选项是-d和-f的组合。它基本上会根据特定的分隔符和列出的字段提取内容。

    下面的代码仅使用分隔符:打印/etc/passwd文件中每一行的第一个字段。

    [root@localhost ~]# cut -d ':' -f 1 /etc/passwd
    root
    bin
    daemon
    adm
    lp
    sync
    shutdown
    …
    

    下面的代码从/etc/passwd文件提取第一和第六个字段:

    [root@localhost ~]# grep '/bin/bash' /etc/passwd| cut -d ':' -f 1,6
    root:/root
    bob:/home/bob
    user01:/home/user01
    

    要显示字段的范围,请指定以-分隔的开始字段和结束字段,如下所示:

    [root@localhost ~]# grep '/bin/bash' /etc/passwd|cut -d ':' -f 1-4,6,7
    root:x:0:0:/root:/bin/bash
    bob:x:1000:1001:/home/bob:/bin/bash
    user01:x:1001:1002:/home/user01:/bin/bash
    
    排除所指定的字段

    在下面的代码中,打印所有字段,除了/etc/passwd文件中的第二个字段:

    [root@localhost ~]# grep '/bin/bash' /etc/passwd|cut -d ':' --complement -f 2
    root:0:0:root:/root:/bin/bash
    bob:1000:1001::/home/bob:/bin/bash
    user01:1001:1002::/home/user01:/bin/bash
    
    如何指定一个输出内容的分隔符

    要指定输出分隔符,请使用--output-delimiter选项。输入分隔符由-d选项指定,默认情况下输出分隔符与输入分隔符相同。
    先看一下没有使用--output-delimiter选项,是什么样子的:

    [root@localhost ~]# cut -d ':' -f1,7 /etc/passwd|sort
    adm:/sbin/nologin
    avahi:/sbin/nologin
    bin:/sbin/nologin
    bob:/bin/bash
    chrony:/sbin/nologin
    daemon:/sbin/nologin
    dbus:/sbin/nologin
    ftp:/sbin/nologin
    games:/sbin/nologin
    grafana:/sbin/nologin
    halt:/sbin/halt
    lp:/sbin/nologin
    mail:/sbin/nologin
    nfsnobody:/sbin/nologin
    nobody:/sbin/nologin
    ntp:/sbin/nologin
    operator:/sbin/nologin
    …
    

    现在使用--output-delimiter选项,输出分隔符使用’ ‘空格分隔,看一下是什么样子的:

    [root@localhost ~]# cut -d ':' -f1,7 --output-delimiter=' ' /etc/passwd|sort
    adm /sbin/nologin
    avahi /sbin/nologin
    bin /sbin/nologin
    bob /bin/bash
    chrony /sbin/nologin
    daemon /sbin/nologin
    dbus /sbin/nologin
    ftp /sbin/nologin
    games /sbin/nologin
    grafana /sbin/nologin
    halt /sbin/halt
    lp /sbin/nologin
    mail /sbin/nologin
    nfsnobody /sbin/nologin
    nobody /sbin/nologin
    ntp /sbin/nologin
    operator /sbin/nologin
    
    总结

    cut命令的一个限制是它不支持指定多个字符作为分隔符。多个空格被视为多个字段分隔符,必须使用tr命令才能得到所需的输出。

  • 相关阅读:
    String.getBytes()未设置字符集导致打印的pdf乱码
    git更新代码报错,error: The following untracked working tree files would be overwritten by ch
    thinkpad X1 extreme 安装Ubuntu 18.04.2 LTS
    plsql的sql窗口中文模糊查询没有作用
    mysql 触发器和存储过程组合使用,实现定时触发操作
    css 实现table 隔行变色
    meta标签详解:源http://blog.csdn.net/kongjiea/article/details/17092413
    Spring+Quartz实现定时任务的配置方法
    ECToch随笔
    转载:ecshop自定义销量
  • 原文地址:https://www.cnblogs.com/linuxprobe/p/14296204.html
Copyright © 2011-2022 走看看