linux中查看文件及内容处理的cut命令介绍,linuxcut


1、命令说明:

cut命令其功能是将文件的每一行按指定分隔符分割并输出。

2、语法:

cut [选项]... [文件列表]...

3、实例:

举个例子,在文件 /etc/passwd 中,每行都是使用 6 个冒号隔开的 7 列文本:

[root@CentOS ~]# cat /etc/passwd
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
......(略去内容)......

如果我们想提取出特定的信息,比如我们需要打印出系统中的所有用户:

[root@CentOS ~]# cat /etc/passwd | cut -f 1 -d ':'????# -f 选项指定列,这里代表提取第一列; -d 选项用于指定分隔符
root
bin
daemon
adm
lp
sync
shutdown
halt
......(略去内容)......

又或者想同时打印出用户和这个用户的家目录:

[root@CentOS ~]# cat /etc/passwd | cut -f 1,6 -d ':'
root:/root
bin:/bin
daemon:/sbin
adm:/var/adm
lp:/var/spool/lpd
sync:/sbin
shutdown:/sbin
halt:/sbin
.....(略去内容)......

又或者同时打印出每位用户的登录shell(即用户登录,所使用的shell):

[root@CentOS ~]# cat /etc/passwd | cut -f 1,6-7 -d ':'
root:/root:/bin/bash
bin:/bin:/sbin/nologin
daemon:/sbin:/sbin/nologin
adm:/var/adm:/sbin/nologin
lp:/var/spool/lpd:/sbin/nologin
sync:/sbin:/bin/sync
shutdown:/sbin:/sbin/shutdown
halt:/sbin:/sbin/halt
......(略去内容)......

我们可以发现,以上 cut 使用场景中具有一个特点,就是在处理的行中都有特定分隔符,但如果要处理的行是没有分隔符的呢,cut 就没有用武之地了?答案是否定的,假设我们想要打印出每行第 1 ~ 5 个字符,以及第7 ~ 10个字符的内容,如下所示:

[root@CentOS ~]# cat /etc/passwd | cut -c 1-5,7-10????# 其中 -c 选项表示以字符为单位进行分割
root::0:0
bin:x1:1:
daemo:x:2
adm:x3:4:
lp:x::7:l
sync::5:0
shutdwn:x
halt::7:0
......(略去内容)......

相关内容