cut 列提取命令

cut 列提取命令

cut [选项] 文件名
选项:
-f 列号:提取第几列
-d 分隔符:按照指定的分隔符分割列,默认制表符为分隔符

[root@localhost ~]# cat student.txt 
ID  Name    Gender  Mark
1   stu1    F   95
2   stu2    F   85
3   stu3    F   75
[root@localhost ~]# cut -f 2 student.txt #截取一列
Name
stu1
stu2
stu3
[root@localhost ~]# cut -f 2,4 student.txt #截取不连续多列,用“,”隔开
Name    Mark
stu1    95
stu2    85
stu3    75
[root@localhost ~]# cut -f 2-4 student.txt #截取连续多列,用“-”隔开
Name    Gender  Mark
stu1    F       95
stu2    F       85
stu3    F       75
[root@localhost ~]# df -h | cut -f 1 #df 输出结果间隔符为空格,默认间隔符为制表符,找不到间隔符认为所有内容为一列
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        50G  1.6G   46G   4% /
devtmpfs        488M     0  488M   0% /dev
tmpfs           497M   24K  497M   1% /dev/shm
tmpfs           497M  292K  497M   1% /run
tmpfs           497M     0  497M   0% /sys/fs/cgroup
tmpfs           100M     0  100M   0% /run/user/0
[root@localhost ~]# df -h | cut -f 1,3 -d " " #间隔符为多个空格,指定一个空格截取后的内容还是空格 
Filesystem 
/dev/vda1 
devtmpfs 
tmpfs 
tmpfs 
tmpfs 
tmpfs 

cut 只能作简单截取,复杂截取需使用 awk 命令

cut 与 grep 提取系统普通用户

[root@localhost ~]# useradd user1
[root@localhost ~]# useradd user2
[root@localhost ~]# grep "/bin/bash" /etc/passwd 
root:x:0:0:root:/root:/bin/bash
user1:x:1000:1000::/home/user1:/bin/bash
user2:x:1001:1001::/home/user2:/bin/bash
[root@localhost ~]# grep "/bin/bash" /etc/passwd | grep -v "root" #“-v”选项代表取反,排除 root 用户
user1:x:1000:1000::/home/user1:/bin/bash
user2:x:1001:1001::/home/user2:/bin/bash
[root@localhost ~]# grep "/bin/bash" /etc/passwd | grep -v "root" | cut -f 1 -d ":" #截取用“:”隔开的第一列字符串
user1
user2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值