[root@localhost ~]# cut [选项] 文件名
作用:提取(显示或查看)文件中的哪几列。
局限性:它不能提取多个空格分割的列,它可以识别的分隔符默认是制表符。
选项:
-f 列号:提取第几竖列。这个选项是必须选项。
-d 分隔符:按照手工指定的分隔符分割列。分隔符可以用双引号括起来。
示例:
[root@localhost ~]# vi student.txt
ID Name gender Mark
1 Liming M 86
2 Sc M 90
3 Gao M 83
[root@localhost ~]# cut -f 2 student.txt
提取该文件中的第2列。(采用默认的制表符分割列)
[root@localhost ~]# cut -d : -f 2,3 student.txt
提取该文件中的第2列和第3列。(提取多列之后,会自动在列之间加上分隔符,然后再显示)
[root@localhost ~]# cut -d : -f 1,2,3 student.txt
提取该文件中的第1列到第3列。
[root@localhost ~]# cut -d ":" -f 1,3 /etc/passwd
提取该文件中的第1列到第3列。
cut命令是提取文件中的列,而grep命令是提取文件中的行,因此,这两个命令经常需要配合使用。
示例:
[root@localhost ~]# cat /etc/passwd | grep /bin/bash | grep -v root | cut -d ":" -f 1
提取/etc/passwd文件中所有普通用户的用户名。
[root@localhost ~]# grep /bin/bash /etc/passwd | grep -v root | cut -d : -f 1
作用同上。
对于多个空格分割的列,无法用cut命令得到我们预期的结果。比如下面这条命令的显示结果就很尴尬。
[root@localhost ~]# df -h | cut -d " " -f 1,3