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
此文章只列举了一些常用选项,不足之处,还请多多指教。