查看原文
其他

每天学一个 Linux 命令(30):cut

点击关注 👉 民工哥技术之路 2021-12-16

点击上方“民工哥技术之路”,选择“设为星标”

回复“1024”获取独家整理的学习资料!

昨日推荐:每天学一个 Linux 命令(29):tail

命令简介

cut 将文件中行中内容按指定分隔符分割并输出。

cut命令还可以用于删除文件中指定行或段,然后打印输出更改后的内容。还可能用以拼接文件内容到一个新的文件中,功能和cat类似。

命令格式

cut [选项] [链接文件名]
cut [OPTION] [LINKNAME]

选项说明

-b #只显示行中指定(字节数)的内容
-c #只显示行中指定(字符数)的内容
-d #指定字段的分隔符,默认为“TAB”
-f #打印指定字段(列)的内容
-n #与“-b”选项连用,不分割多字节字符
-s #不打印不包含定界符的行的内容
--help     #打印帮助信息
--version  #打印版本信息

cut命令中指定字节或字符范围的说明如下:

N    #从1字节、字符或字段开始到第N个字节、字符或字段
N-  #从第N个字节、字符或字段到行的结尾
N-M  #从第N个字节、字符或字段到第M个字节,字符或字段
-M  #从第1个字节、字符或字段到第M个字节、字符或字段
注意:所有的范围取值需为整数,如:10,10-,10-20,-20。

应用举例

#打印指定字节数的内容
[root@centos7 testdir]# cat mingongge1.txt 
1111 11 111111 1 111 1 1 11
22222222222 222 2222 22 2 2 2
33333333333 333333 3333 333 33
444444444444 444 444444444
[root@centos7 testdir]# cut -b 3 mingongge1.txt
1
2
3
4

#截取指定字段内容
[root@centos7 testdir]# cat cuttest.txt 
1 2 3 4 5 6 8
9 8 7 6 5 4 3
2 1 9 8 7 6 5
#以空格为分隔,打印每一行的第一列
[root@centos7 testdir]# cut -f1 -d" " cuttest.txt 
1
9
2
#以空格为分隔,打印每一行的第一列和第三列
[root@centos7 testdir]# cut -f1,3 -d" " cuttest.txt 
1 3
9 7
2 9
#以空格为分隔,打印每一行的第三列到结尾
[root@centos7 testdir]# cut -f3- -d" " cuttest.txt 
3 4 5 6 8
7 6 5 4 3
9 8 7 6 5

#截取每一行第2-5个字符
[root@centos7 testdir]# cut -c 2-5 cuttest.txt 
 2 3
 8 7
 1 9
#截取每一行第一个到第五个字符
[root@centos7 testdir]# cut -c -5 cuttest.txt 
1 2 3
9 8 7
2 1 9
#截取每一行第五个到最后一个字符
[root@centos7 testdir]# cut -c 5- cuttest.txt 
3 4 5 6 8
7 6 5 4 3
9 8 7 6 5

指定分隔符截取内容的用法非常实用,工作中也经常使用。

每天学一个 Linux 命令(27):head
每天学一个 Linux 命令(28):ln

推荐阅读 点击标题可跳转

CentOS搭建VPN服务,一次性成功,收藏了

再见 CentOS! Rocky Linux 要来了

马云消失后首次露面!神态似有疲惫

大更新!微信 8.0 来啦

Flash 已死?莫慌!中国特供版来了

小米经营十年的软件倒了

6 个JVM性能监控、调优工具使用详解

配置 Linux 的时钟同步

高性能 Nginx HTTPS 调优!为 HTTPS 提速 30%

: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存