语法
cut 命令的语法如下
cut OPTION... [FILE]...
cut 命令会把输入源 FILE 的每一行中的选中部分,进行打印输出。
如果省略 FILE 参数,或者 FILE 参数为 -
, 那么 cut 命令会从标准输入读取。
基本使用
cut 命令比较简单,只需要掌握两个关键的选项,如下
-d
选项指定分隔符。但是默认的分隔符是 TAB ( 水平制表符 ) 。-f
选项指定打印第 N 个字段(基于1)。
例如,可以通过管道打印 /etc/passwd
文件中的用户名,命令如下
cat /etc/passwd | cut -d ':' -f 1
-d ':'
指定分隔符为分号,-f 1
只打印第一个字段,也就是用户名。
进阶使用
刚才的例子只是一个开胃小菜,cut 命令还有一些需要注意的小细节。
首先,如果对于某一行,它不包含 cut 命令 -d
选项指定的分隔符,那么默认会打印这一行,因为这一整行就代表一个字段。我们可以通过 指定-s
选项,对于那些不包含指定分隔符的行,不打印。
其次,指定打印的字段其实是一个范围,有如下几种情况
-f 1,3
表示只打印第一和第三个字段。-f 1-3
表示打印第一到第三个字段。-f 3
表示只打印第三个字段。-f 1-
表示打印第一个到最后一个字段。
例如,我们可以打印 /etc/passwd
文件中的用户名以及这用户使用的 shell 类型
cat /etc/passwd | cut -d ':' -f 1,7
最后,cut 命令还可以通过 --output-delimiter=STRING
指定输出的分割符,例如上面读取用户和 shell 类型的命令,输出结果是以 -d ':'
指定的分隔符分割的,我们可以通过 --output-delimiter
选项指定输出的分隔符为空格
cat /etc/passwd | cut -d ':' -f 1,7 --output-delimiter=' '