Linux - 字符截取命令 cut

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 21:02   2407   0

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)的字符。
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP