Linux - 字符截取命令 cut

cut 字段列提取命令

命令语法:cut [选项] 文件名
命令选项:-f 列号,提取第几列;-d 分隔符,按照指定的分隔符分割列。

示例: 
[root@192 cut]# cat score.txt
Id	Name	Gender	Score
1	zhangsan	M	90
2	lisi	M	88
3	wangwu	M	98
4	zhaoliu	N	97
5	NangongYi	M	100
实例:我要提取所有的成绩 - cut -f 4 score.txt
[root@192 cut]# cut -f 4 score.txt
Score
90
88
98
97
100
[root@192 cut]#
实例:如果要提取姓名和分数 - cut -f 2,4 score.txt
[root@192 cut]# cut -f 2,4 score.txt
Name	Score
zhangsan	90
lisi	88
wangwu	98
zhaoliu	97
NangongYi	100
[root@192 cut]#
实例:从passwd文件,以“:”为分隔符,提取1,3列 - cut -d “:” -f 1,3 /etc/passwd
[root@192 cut]# cut -d ":" -f 1,3 /etc/passwd
root:0
bin:1
daemon:2
adm:3
lp:4
sync:5
shutdown:6
halt:7
mail:8
uucp:10
operator:11
games:12
gopher:13
ftp:14
nobody:99
dbus:81
vcsa:69
rpc:32
abrt:173
haldaemon:68
ntp:38
saslauth:499
postfix:89
avahi:70
rpcuser:29
nfsnobody:65534
sshd:74
tcpdump:72
oprofile:16
user1:500
[root@192 cut]#
那么,cut的作用,就这些了吗?不是,cut在现实的操作中,与grep命令结合,会发挥出最大的作用。
知识点:
系统用户登录的文件是“/sbin/nologiin”;普通用户登录的文件是“/bin/bash”
实例:我想知道Linux系统中所有的新增普通用户的用户名 - cat /etc/passwd | grep /bin/bash | cut -d ":" -f 1
[root@192 cut]# cat /etc/passwd | grep /bin/bash | cut -d ":" -f 1
root
user1
user2
user3
[root@192 cut]#
cut 命令的局限
示例:
[root@192 cut]# df -h
文件系统	      容量  已用  可用 已用%% 挂载点
/dev/sda3              17G  2.6G   14G  17% /
tmpfs                 499M     0  499M   0% /dev/shm
/dev/sda1             985M   40M  896M   5% /boot
实例:我想提取/dev/sda3的使用量
[root@192 cut]# df -h | cut -f 5

/dev/sda3              17G  2.6G   14G  17% /
tmpfs                 499M     0  499M   0% /dev/shm
/dev/sda1             985M   40M  896M   5% /boot
结果,并没有显示我们想要的列!这是为什么?Cut命令的局限性就显示出来了!

cut 命令的局限在于,它无法提取分隔符不是“制表符”(tab)的字符
发布了59 篇原创文章 · 获赞 2 · 访问量 5572

猜你喜欢

转载自blog.csdn.net/LDR1109/article/details/102957378