cut
命令在 Linux 系统中用来提取文件每一行的内容片段。如同 cut 这个英文单词的意思一样,剪切内容并提供给标准输出(Stdout)。
cut 命令格式
cut 选项... [文件]...
cut
命令的选项为必须提供的命名参数,文件为可选参数。如果不提供文件参数,cut
命令默认会从标准输入读取数据。
cut 命令示例
以 Linux 系统的用户配置文件 /etc/passwd 为例,假设要获取这个文件中的所有用户名,可以使用如下命令:
cut -d ':' -f 1 /etc/passwd
如果是获取每个用户所用的 Shell,只需要稍微修改一下 -f
选项的值:
cut -d ':' -f 6 /etc/passwd
使用 -f
选项值的范围选择格式,还能达到同时返回用户名和 Shell 的目的:
cut -d ':' -f 1,6 /etc/passwd
使用 -b
选项可以获取每个用户开头的字符:
cut -b 1 /etc/passwd
这个命令的使用并不复杂,参考下面的命令选项列表,以及最后的范围选择符格式说明基本就能掌握。
cut 命令选项
缩写 | 完整名称 | 说明 |
---|---|---|
-b , --bytes= 列表 |
只选中指定的这些字节。 | |
-c , --characters= 列表 |
只选中指定的这些字符。 | |
-d , --delimiter= 分界符 |
使用指定分界符代替制表符作为区域分界。 | |
-f , --fields= 列表 |
只选中指定的这些域;并打印所有不包含分界符的行,除非-s 选项被指定。 |
|
--complement |
补全选中的字节、字符或域。 | |
-s |
--only-delimited |
不打印没有包含分界符的行。 |
--output-delimiter= 字符串 |
使用指定的字符串作为输出分界符,默认采用输入的分界符。 | |
-z |
--zero-terminated |
以 NUL 字符而非换行符作为行尾分隔符。 |
--help |
显示此帮助信息并退出。 | |
--version |
显示版本信息并退出。 |
在使用 -b
,-c
或是 -f
选项时,需要提供一个列表参数值,这个列表由数字组成,可以用 ,
逗号的方式来提供一个范围值。这个列表参数值的有效格式如下:
N
: 第 N 个字节,字符或字段, 从 1 开始计数。N-
: 从第 N 个字节, 字符或字段直至行尾。N-M
: 从第 N 到 第 M (并包括第 M) 个字节,字符或字段。-M
: 从第 1 到第 M (并包括第 M) 个字节,字符或字段。