美文网首页
cut 命令

cut 命令

作者: 小鸡小季 | 来源:发表于2016-04-14 22:17 被阅读69次

    (1)其语法格式为:cut [-bn] [file] 或 cut [-c] [file] 或 cut [-df] [file]
    使用说明cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。
    主要参数

    -b :【--byte】   以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
    -c :【--character】  以字符为单位进行分割。
    -d :【--delimiter】自定义分隔符,默认为制表符。
    -f :【--fields】与-d一起使用,指定显示哪个区域。
    -n :【--complement】取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的<br />范围之内,该字符将被写出;否则,该字符将被排除。
    -s :【--only-delimited】不打印含分隔符的行
    

    cat test |cut -b 3-4    每一行的第三到第四字节
    cat test |cut -b 4    第四个字节
    cat test |cut -b -3    前三个字节
    cat test |cut -b 4-    从后数四个字节
    cat test |cut -b 3-5,8   三到五个字节和第八个字节
    

    $cat test
        qw:er:tyuiop
        as:df:ghjkl
        zx:cv:bnm
    $cat test |cut -d : -f 1
        qw
        as
        zx
    

    当然,在设定-f时,也可以使用例如3-5或者4-类似的格式,不过这样会连分隔符一起打印


    在cut -d中用什么符号来设定制表符或空格呢?

    其实cut的-d选项的默认间隔符就是制表符,所以当你就是要使用制表符的时候,完全就可以省略-d选项,而直接用-f来取域就可以了。

    如果你设定一个空格为间隔符,那么就这样:

    $ cat tab_space.txt |cut -d ' ' -f 1
    

    注意,两个单引号之间可确实要有一个空格哦,不能偷懒。
    而且,只能在-d后面设置一个空格,可不许设置多个空格,因为cut只允许间隔符是一个字符。
    如果文件里面的某些域是由若干个空格来间隔的,那么用cut就有点麻烦了,因为cut只擅长处理“以一个字符间隔”的文本内容

    相关文章

      网友评论

          本文标题:cut 命令

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