cut 的用法

1
$ cut ***OPTION...*** ***[FILE]...***

OPTION选项各参数解析及例子

  • -b 按字节(bytes)剪切
1
$ cut -b[n1-n2] [FILE]

n1和n2可以只有一个,表示选择第n个字符,n1-n2 表示选择n1-n2间的字符

Figure1_cut-b

  • -n 不要分隔多字节字符,与 -b 一起使用
1
$ cut -b[n1-n2] -n [FILE]

由Figure1可以看出,当选择的是汉字时就会出现乱码,这时就需要加上 -n 选项了

Figure2_cut-b-n

  • -c 按字符剪切
1
$ cut -c[n1-n2] [FILE]

不管是单字节字符,还是多字节字符,都算一个

Figure_cut-c

  • -f 按字段分隔符来剪切
  • -d 设定字段分隔符,默认为[TAB],与 -f 一起使用
1
2
$ cut -f[n1-n2] [FILE]
$ cut -d"[分隔符]" -f[n1-n2] [FILE]

Figure3_cut-f
Figure4_cut-d-f

  • -s 不选择不包含分隔符的行
1
$ cut -f[n1-n2] -s [FILE]

对比Figure3可知,加上 -s 后,最后一行不包含分隔符[TAB]的行,不再被打印

Figure5_cut-f-s

  • –complement 补充所选字节,字符或字段的集合(反向选择,打印出未被选择的字节、字符或字段)
1
$ cut -f[n1-n2] --complement [FILE]

这里的 -f 选项亦可换成 -b -c,根据需要自选

Figure6_cut-f-commplement

  • –output-delimiter 指定输出分隔符,默认为输入分隔符
1
$ cut -f[n1-n2] --output-delimiter "[分隔符]" [FILE]

Figure7_cut-f-output-delimiter

注:n1-n2(n1和n2之间的所有),n1/n2(n1或n2),n1-(n1及n1以后所有),-n2(n2及n2之前所有)。如果选择了两个范围:-f1-3,2-4 ,等价于-f1-4

Figure8_cut-n1-n2