Fork me on GitHub

cut命令

1. 命令简介

cut根据指定的定界符,切分文件,并将选中的列输出到标准输出。

2. 用法

cut [选项]… [文件]…

打印输入行的选中的parts 到标准输出

3. 选项

4. 示例

以密码/etc/passwd为例

1
2
3
4
5
6
[root@xqzt ~]# tail -n 5 /etc/passwd
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
gnome-initial-setup:x:992:990::/run/gnome-initial-setup/:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
vboxadd:x:991:1::/var/run/vboxadd:/bin/false
wangshengzhuang:x:1000:1000:wangshengzhuang:/home/wangshengzhuang:/bin/bash

示例1:-f 指定字段

打印用户名

1
2
3
4
5
6
[root@xqzt ~]# tail -n 5 /etc/passwd |cut -d ":" -f 1,6,7
nfsnobody
gnome-initial-setup
tcpdump
vboxadd
wangshengzhuang

示例2:-f 指定多个字段

打印用户名、home目录、shell

1
2
3
4
5
6
[root@xqzt ~]# tail -n 5 /etc/passwd |cut -d ":" -f 1,6,7
nfsnobody:/var/lib/nfs:/sbin/nologin
gnome-initial-setup:/run/gnome-initial-setup/:/sbin/nologin
tcpdump:/:/sbin/nologin
vboxadd:/var/run/vboxadd:/bin/false
wangshengzhuang:/home/wangshengzhuang:/bin/bash

示例3: -f n-m打印第n-m个字段

打印用户ID和组ID

1
2
3
4
5
6
7
8
9
10
11
12
[root@xqzt ~]# tail -n 5 /etc/passwd |cut -d ":" -f 3-4
65534:65534
992:990
72:72
991:1
1000:1000
[root@xqzt ~]# tail -n 5 /etc/passwd |cut -d ":" -f 3,4
65534:65534
992:990
72:72
991:1
1000:1000

示例4: –output-delimiter指定输出使用新的分界符

1
2
3
4
5
6
[root@xqzt ~]# tail -n 5 /etc/passwd |cut -d ":" -f 3,4 --output-delimiter=" | "
65534 | 65534
992 | 990
72 | 72
991 | 1
1000 | 1000

示例5:–complement 补全选中的部分

打印除了密码、用户id 和组id 之外的所有列

1
2
3
4
5
6
[root@xqzt ~]# tail -n 5 /etc/passwd |cut -d ":" -f 2-4 --complement
nfsnobody:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
gnome-initial-setup::/run/gnome-initial-setup/:/sbin/nologin
tcpdump::/:/sbin/nologin
vboxadd::/var/run/vboxadd:/bin/false
wangshengzhuang:wangshengzhuang:/home/wangshengzhuang:/bin/bash

参考

好记性不如烂笔头,生命不息,学习不止!

分享