零、前言

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

1、切割 cut.txt 第一列

[root@jiangnan data]# cut -d ' ' -f 1 cut.txt 
dong
guan
wo
lai
le
[root@jiangnan data]# 

注意双引号里面是空格,因为要以空格作为分隔符。

2、切割 cut.txt 第二、三列

[root@jiangnan data]# cut -d ' ' -f 2,3 cut.txt 
shen
zhen
 wo
 lai
 le
[root@jiangnan data]# 

注意后面三个的前面是有一个空格的,因为我们在准备数据的时候就写了两个空格。 

3、切割 cut.txt 的第 5 - 8 个字符

[root@jiangnan data]# cut -c 5-8 cut.txt 
 she
 zhe
wo
 lai
le
[root@jiangnan data]# 

4、切割 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]# 

 可以看出纯英文状态下字节和字符等效

5、切割 cut.txt 的第 6 个字节以前的内容

[root@jiangnan data]# cut -b -6 cut.txt 
dong s
guan z
wo  wo
lai  l
le  le
[root@jiangnan data]# 

 6、切割字符串中的汉字

[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)无法满足要求。 

 7、在 cut.txt 文件中切割出 guan

[root@jiangnan data]# cat cut.txt | grep "guan" | cut -d " " -f 1
guan
[root@jiangnan data]# 

8、选取系统 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 只擅长处理“以一个字符间隔”的文本内容。

转载:【Linux篇】cut命令详解_傻啦猫@_@的博客-CSDN博客_cut命令

(SAW:Game Over!)

 

 

Logo

更多推荐