Linux命令-cut篇

  Cut 命令是常用的 Linux 命令,在这里总结一下平时常用的参数和用法,方便查证。

  常用参数:
    -b:以字节为单位进行分割;
    -c:以字符为单位进行分割;
    -d:自定义分割符进行分割,默认为制表符;

    -f:一般与 -d 一起使用,指定区域;
    -n:一般与 -b 一起使用,取消分割多字节字符;

  举个栗子,先生成一个测试模板

[dmdba@192 gs_bash]$ cat /etc/passwd |head -n 10 > test.txt
[dmdba@192 gs_bash]$ cat test.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

  按照字节截取,其中 -4 代表从第一个字节到第四个字节(4- 就代表第四个字节到最后一个字节),可以截取多个范围的字节,以逗号隔开。

[dmdba@192 gs_bash]$ cut -b -4,10-12 test.txt 
root0:r
bin::bi
daem2:2
adm::ad
lp:xlp:
sync0:s
shutx:6
halt0:h
mail12:
uucp:14

  我建个临时文件,里面用制表符(tab) 与空格做了一行数据。

[dmdba@192 gs_bash]$ cat a.log 
1    2 3 4
[dmdba@192 gs_bash]$ sed -n l a.log 
1\t2 3 4$

  当我用制表符分割时,因为是默认的,所以不用添加 -d 参数,添加了反而会报错,如果用一个空格来分割,则要加。

[dmdba@192 gs_bash]$ cat a.log 
1    2 3 4
[dmdba@192 gs_bash]$ cut -d -f1 a.log
cut: the delimiter must be a single character
Try `cut --help' for more information.
[dmdba@192 gs_bash]$ cut -f1 a.log 
1
[dmdba@192 gs_bash]$ cut -d' ' -f1 a.log 
1    2

 

posted @ 2019-04-10 15:10  LightInk  阅读(166)  评论(0编辑  收藏  举报