zoukankan      html  css  js  c++  java
  • 40-cut 简明笔记

    从输入行中选取字符或者字段

    cut [options] [file-list]

    cut 从输入行中选取字符或者字段,并将他们写到标准输出,字符和字段从1开始编号

    参数

    file-list 是文件的路径名列表,如果没有指定参数,或者使用连字符(-)来代替文件名,那么cut将从标准输入来获取输入

    选项

    -c clist                选取由clist中的列号指定的字符。clist的值为列号(多个值用逗号分隔)或者列范围,列范围用两个列号指定,

                              中间用连字符隔开。范围-n表示从第1~n列。n-表示从第n列到行尾。n-m表示从第n~m列

    -d dchar              将dchar作为输入字段的分割符,默认分隔符为制表符,特殊情况下可使用转义字符

    -f flist                  选择在flist中指定的字段。flist的值为字段号(多个值用逗号分隔)或者字段的范围。字段范围可以用两个字段号指定,

                              中间用连字符隔开。范围-n表示从第1~n个字段,范围n-表示从第n个字段到行尾,n-m表示从第n~m个字段。默认字

                              段的分隔符为制表符,也可以使用-d选项来指定分割符

    -s                       仅打印包含分割符的行,如果没有此选项,则打印不包含分割符的行

     

    示例

    先看看原文件

    $ cat a.txt
    1111 2222 3333 4444 5555
    1111 2222 3333 4444 5555
    1111 2222 3333 4444 5555
    1111 2222 3333 4444 5555
    ------------------------

    cut -c 列范围

    $ cut -c1-4 a.txt
    1111
    1111
    1111
    1111
    ----

    指定列范围打印字符

    cut -c 列号

    $ cut -c1,6 a.txt
    12
    12
    12
    12
    --

    指定列号打印字符

    cut -d -f

    $ cut -d' ' -f1-3 a.txt
    1111 2222 3333
    1111 2222 3333
    1111 2222 3333
    1111 2222 3333
    ------------------------

    指定分隔符和字段范围打印字符,此处文本文件中默认以space作为分隔符,最底下没有分隔符,所以全部打印

    还可用cut -d -fn,n指定字段号

    cut -s -d -f

    $ cut -s -d' ' -f1-3 a.txt
    1111 2222 3333
    1111 2222 3333
    1111 2222 3333
    1111 2222 3333

    使用-s选项打印包含分隔符的行,最末行没有分隔符,所以不打印

    Tips

    虽然cut在功能上有所限制,但是它能较快的分割列和字段,有时能与paste配合使用

  • 相关阅读:
    Linux文件查找
    Linux之正则表达式
    linux文本处理
    Linux压缩归档管理
    spring-security问题记录
    mybatis-plus&springboot
    Mysql8- Public Key Retrieval is not allowed
    MySQL 5.7安装(linux)
    git把本地代码上传(更新)到github上
    linux相关(find/grep/awk/sed/rpm)
  • 原文地址:https://www.cnblogs.com/luoahong/p/6188563.html
Copyright © 2011-2022 走看看