cut的工作就是“剪”,具体的说就是在文件中负责剪切数据用的。cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段输出。
一、基本语法cut [选项参数] filename
说明:默认分隔符是制表符。
选项与参数:
-d:分隔符,按照指定分隔符分割列。与 -f 一起使用
-f:依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思(列号,提取第几列)
-c:以字符 (characters) 的单位取出固定字符区间
-b:以字节为单位进行分割
二、实操案例准备数据
[root@jiangnan data]$ touch cut.txt [root@jiangnan data]$ vim cut.txt dong shen guan zhen wo wo lai lai le le
- 切割cut.txt第一列
[root@jiangnan data]# cut -d ' ' -f 1 cut.txt dong guan wo lai le [root@jiangnan data]#
注意双引号里面是空格,因为要以空格作为分隔符。
- 切割cut.txt第二、三列
[root@jiangnan data]# cut -d ' ' -f 2,3 cut.txt shen zhen wo lai le [root@jiangnan data]#
注意后面三个的前面是有一个空格的,因为我们在准备数据的时候就写了两个空格。
- 切割cut.txt的第5-8个字符
[root@jiangnan data]# cut -c 5-8 cut.txt she zhe wo lai le [root@jiangnan data]#
- 切割cut.txt的第2,4,6个字节
[root@jiangnan data]# cut -b 2,4,6 cut.txt ogs unz o o a l e e [root@jiangnan data]#
可以看出纯英文状态下字节和字符等效。
- 切割cut.txt的第6个字节以前的内容
[root@jiangnan data]# cut -b -6 cut.txt dong s guan z wo wo lai l le le [root@jiangnan data]#
- 切割字符串中的汉字
[root@jiangnan data]# echo "我爱你中国" | cut -c 2,3 爱你 [root@jiangnan data]# echo "我爱你中国" | cut -b 2,3 [root@jiangnan data]# echo "我 爱 你 中 国" | cut -d ' ' -f -2 我 爱 [root@jiangnan data]#
对于汉字的切割最好使用-b(字符),字节(-c)无法满足要求。
- 在cut.txt文件中切割出guan
[root@jiangnan data]# cat cut.txt | grep "guan" | cut -d " " -f 1 guan [root@jiangnan data]#
- 选取系统PATH变量值,第2个“:”开始后的所有路径:
[root@jiangnan data]# echo $PATH /usr/local/java/jdk1.8.0_161/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin [root@jiangnan data]# echo $PATH | cut -d: -f 2- /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin [root@jiangnan data]#三、cut有哪些缺陷和不足
如果文件里面的某些域是由若干个空格来间隔的,那么用cut就有点麻烦了,因为cut只擅长处理“以一个字符间隔”的文本内容。
CUT命令详解
微信公众号先已开通,搜索 “江小南和他的小伙伴们” 就能找到我哦,各位小伙伴们可以关注一下,文章会进行同步更新,方便查看哦。



