您的位置:首页 > 运维架构 > Shell

Linux学习日记 —— 11.2.1 Shell编程-字符截取命令-cut命令

2018-03-06 22:30 309 查看
[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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux