cut
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个字段、字节或字符
最后更新于