使用cut按列切分文件

cut是一个帮我们按文本切分的小工具,他可以指定分隔符的定界符,在cut术语中,每列都是一个字段

提取一个字段或列

[root@MIO-2 ~]# cut -f1 cut.txt 
1111

同时提取多个字段或列

[root@MIO-2 ~]# cut -f2,3 cut.txt 
2222    3333

—complement 可以排除设置之外的列

打印出除了第三列的所有列

[root@MIO-2 ~]# cut -f3 --complement cut.txt 
1111    2222

-d 指定分隔符

[root@MIO-2 ~]# cut -f1 -d: /etc/shadow
root
bin
daemon
adm
lp
sync

cut命令有一些选项可以将一串字符做为列来显示

指定字段的字符或字节范围

假设我们不一览定界符,但需要通过将字段定义为一个字符范围(行首记为0)来进行字段提取,这种需求也可以用cut来实现

N- 从第N个字节,字符或字段到行尾

N-M 从第N个字节,字符或字段到第M个字节,字符或字段

-M 第一个字节,字符或字段到第M个字节,字符或字段

-b 表示字节

-c 表示字符

-f 表示定义字段

打印出每一行的第一个至第五个字符

[root@MIO-2 ~]# cut -c1-5 /etc/shadow
root:
bin:*
daemo
adm:*

-b使用字节做为计数单位

打印出每一行的1-6字节

[root@MIO-2 ~]# cut -b1-6 /etc/shadow
root:$
bin:*:
daemon

—output-delimiter 多列输出时 指定分隔符

[root@MIO-2 ~]# cut -b1-6,9-12  --output-delimiter === /etc/shadow
root:$===Iiwj
bin:*:===628:
daemon===:156
adm:*:===628: