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个字段、字节或字符

最后更新于