本部分主要介绍:命令 cut
的命令格式及使用方法,但其使用具有一定局限性。命令 cut
是对列进行筛选的,而命名 grep
是对行进行筛选的,两者结合效果最佳。_
cut 字段提取命令
说明:命令 cut
提取的是列,而命令 grep
提取的是行
-
命令格式
-
cut [选项] 文件名
,一列作为分割对象,默认以 制表符 作为分隔符,当然使用选项-d
也可以自己指定分隔符。 - 选项
-
-f
列号:提取第几列 -
-d
分隔符:按照指定分隔符分割列
-
-
-
作用
命令
cut
和 命令grep
结合才能达到效果。一个对行一个对列。-
对
/etc/passwd
进行搜索,搜索 包含/bin/bash
字符串行(含有bin/bash
是可以登录的字段)-
命令
cat passwd | grep /bin/bash
root@localcomputer:/etc# cat passwd | grep /bin/bash root:x:0:0:root:/root:/bin/bash ss:x:1000:1000:ss,,,:/home/ss:/bin/bash
-
-
在对上述结果剔除 root 用户
-
命令
cat passwd | grep /bin/bash | grep -v root
root@localcomputer:/etc# cat passwd | grep /bin/bash | grep -v root ss:x:1000:1000:ss,,,:/home/ss:/bin/bash
-
-
对上述结果提取用户名,最终达到筛选出除了 root 用户之外的可以正常登录的用户
-
命令
cat passwd | grep /bin/bash | grep -v root | cut -d ":" -f 1
root@localcomputer:/etc# cat passwd | grep /bin/bash | grep -v root | cut -d ":" -f 1 ss
-
-
cut
命令的局限性cut
命令默认分割符 制表符,也可以使用-d
指定分隔符,但是注意指定分割符后cut
会严格按照指定的分割符分割列。-
对
df -h
命令输出的结果进行筛选,df -h | grep /dev/sda5
-
命令
df -h
输出分区信息(这里的空格不是制表符,是空格键)文件系统 容量 已用 可用 已用% 挂载点 udev 957M 0 957M 0% /dev tmpfs 198M 1.8M 196M 1% /run /dev/sda5 12G 5.6G 5.3G 52% / tmpfs 986M 0 986M 0% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock
-
筛选设备文件名为
/dev/sda5
的分区,命令df -h | grep /dev/sda5
root@localcomputer:/etc# df -h | grep /dev/sda5 /dev/sda5 12G 5.6G 5.3G 52% /
-
-
在使用
cut
命令进行提取,但是可以看出df -h
输出的结果列的间隔不一致,命令cut
无法很好的分割-
使用
cut -d " " -f 6
命令,对df -h | grep /dev/sad5
输出结果再次筛选(输出的是空格,因为cut
是以一个空格分割的,但实际上/dev/sda5 12G 5.6G 5.3G 52% /
每一个间隙是不一致的)root@localcomputer:/etc# df -h | grep /dev/sda5 | cut -d " " -f 6 root@localcomputer:/etc#
-
-
实例
-
使用
-f
选项,提取列信息-
创建一个文件(文件格式类似表格形式,空格是 tab 键)
ss@localcomputer:~/test$ cat grade # 构成如表格 ID name grade 1 tom 78 2 jack 89
-
命令
cut -f 1 grade
查看第一列;命令cut -f 1,3 grade
查看 1 列和 3 列ss@localcomputer:~/test$ cut -f 1 grade ID 1 2 ss@localcomputer:~/test$ cut -f 1,3 grade ID grade 1 78 2 89
-
-
使用
-d
指定分割符。提取/etc/passwd
文件-
/etc/passwd
文件样式,是以:
分割字符的root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync
-
使用
-d
指定分割符,命令cut -d ":" -f 1,7 /etc/passwd
提取第一列和第二列。root@localcomputer:/etc# cut -d ":" -f 1,7 /etc/passwd root:/bin/bash daemon:/usr/sbin/nologin bin:/usr/sbin/nologin sys:/usr/sbin/nologin sync:/bin/sync games:/usr/sbin/nologin
-
-