cut命令是我们在Linux中的一个基本命令,用来从文件或标准输入中剪切某些部分,并将结果输出到标准输出。一般在数据处理和shell脚本中使用。cut命令有点像简化版的awk命令,所以一般在简单的场景下使用,复杂的场景一般使用akw命令
语法格式
cut OPTION [FILE]
cat file|cut [option]
cut命令格式也很简单,但是注意cut命令特殊在不能省略option且必须携带输出范围,否则会报错
cut的输出计数从1开始,也就是第一个字母记作1
指定输出的字符
cut命令可以指定要输出分隔字符的范围,可以使用以下参数指定:
-f:使用指定的字段、字段集或字段范围进行选择。-b:使用指定的字节、字节集或字节范围进行选择。-c:使用指定的字符、字符集或字符范围进行选择。
# a b c
> cut -f1 -s a.txt
a
- 默认使用TAB作为分隔符,但是可以使用
-d指定分隔符
# a,b,c,d
> cut -d',' -f4 a.txt # 以,为分隔符
d
- 默认在输出的时候会把不带分隔符的行也进行输出,如果只想输出匹配的行,可以加
-s参数
反向匹配
有的时候可能我们想要的是不匹配的字符,也就是想剔除某些字符的时候,可以使用--complement,他会显示所选之外的所有字节、字符或字段
# a b c
> cut -f1 -s --complement a.txt
b c
设置输出格式
cut中输出的分隔符是使用的输入的分隔符,如果我们想设置特定格式输出,可以使用--output-delimiter参数指定输出分隔符
> cut -d',' -f1-3 -s --output-delimiter=' ' a.txt
a b c
输出范围
参数指定的LITS格式可以是:
- 表示从1开始的字节、字段或字符的整数N。
- 用逗号分隔的多个整数。
- 整数范围。
- 用逗号分隔的多个整数范围。
每个范围可以是:
N-:从整数N(字段、字节或字符)开始到行尾。N-M:从整数N到整数M(包括)。-M:从第一个字段、字节或字符开始到指定的M个字段、字节或字符