linux文本剪切命令---cut

cut命令

可以将其描述为从一行上移除部分内容、选择性显示出已筛选内容的文本操作命令。
通俗的说就是:文件内容查看,显示行中的指定部分,删除文件中指定字段。

格式及选项

cut [选项] [参数]

-b:仅显示行中指定直接范围的内容;

-c:仅显示行中指定范围的字符;

-d:指定字段的分隔符,默认的字段分隔符为“TAB”;

-f:显示指定字段的内容;

-n:与“-b”选项连用,不分割多字节字符;

–complement:补足被选择的字节、字符或字段;

–out-delimiter=<字段分隔符>:指定输出内容是的字段分割符;

–help:显示指令的帮助信息;

–version:显示指令的版本信息。

说明

cut用来显示文件的内容,它依次读取由参数file所指明的文件,将它们的内容输出到标准输出上.
(注:cut是通过列进行分割)

简单案例

cat cut_test.txt 
number	name	age
01	jiayi	25
02	yier	26
03	bingsan	27
cut -f 1 cut_test.txt 			#使用 -f 选项提取指定字段,1代表第一列
number
01
02
03
cut -f2,3 cut_test.txt			#提取第二与第三列字段
name	age
jiayi	25
yier	26
bingsan	27
cut -f1,3 cut_test.txt			#提取第一与第三列字段
number	age
01	25
02	26
03	27

–complement 选项提取指定字段之外的列 (取反)

cut -f2 --complement cut_test.txt		#打印除了第二列之外的列
number	age
01	25
02	26
03	27

使用 -d 选项指定字段分隔符

cat cut_test2.txt 
number,	name,	age
01,	jiayi,	25
02,	yier,	26
03,	lisi,	27
cut -f2 -d "," cut_test2.txt		#提取第二列,过滤分隔符,
	name
	jiayi
	yier
	lisi

补充扩展:
参考自(https://blog.csdn.net/m0_37814112/article/details/80492032)
cut命令可以将一串字符作为列来显示,字符字段的记法:
N-:从第N个字节、字符、字段到结尾;
N-M:从第N个字节、字符、字段到第M个(包括M在内)字节、字符、字段;
-M:从第1个字节、字符、字段到第M个(包括M在内)字节、字符、字段。
上面是记法,结合下面选项将每个范围的字节、字符指定为字段:
-b 表示字节;
-c 表示字符;
-f 表示定义字段;

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

cat cut_test3.txt
123456789
123456789
123456789
123456789
cut -c1-3 cut_test3.txt				#打印第一至第三个字符
123
123
123
123
cut -c-2 cut_test3.txt 				#打印前两个字符
12
12
12
12
cut -c5- cut_test3.txt 				#打印从第五个字符开始到结尾
56789
56789
56789
56789

简单应用

比如

df -hT
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        50G  4.4G   46G    9% /
devtmpfs                devtmpfs  897M     0  897M    0% /dev
tmpfs                   tmpfs     912M     0  912M    0% /dev/shm
tmpfs                   tmpfs     912M  9.0M  903M    1% /run
tmpfs                   tmpfs     912M     0  912M    0% /sys/fs/cgroup
/dev/sda1               xfs      1014M  179M  836M   18% /boot
/dev/mapper/centos-home xfs        47G   33M   47G    1% /home
tmpfs                   tmpfs     183M   12K  183M    1% /run/user/42
tmpfs                   tmpfs     183M     0  183M    0% /run/user/0
df -hT | grep "/$" | awk '{print $6}' | cut -d "%" -f 1		#/目录使用情况,过滤符号%
9

还有

echo "123456789" | cut -d6 -f1
12345

此文章只列举了一些常用选项,不足之处,还请多多指教。

发布了14 篇原创文章 · 获赞 4 · 访问量 531

猜你喜欢

转载自blog.csdn.net/qq_42534026/article/details/103761751