【Linux篇】cut命令详解

cut命令详解

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]# 

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

  1. 切割cut.txt第二、三列
[root@jiangnan data]# cut -d ' ' -f 2,3 cut.txt 
shen
zhen
 wo
 lai
 le
[root@jiangnan data]# 

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

  1. 切割cut.txt的第5-8个字符
[root@jiangnan data]# cut -c 5-8 cut.txt 
 she
 zhe
wo
 lai
le
[root@jiangnan data]# 
  1. 切割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]# 

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

  1. 切割cut.txt的第6个字节以前的内容
[root@jiangnan data]# cut -b -6 cut.txt 
dong s
guan z
wo  wo
lai  l
le  le
[root@jiangnan data]# 
  1. 切割字符串中的汉字
[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]# 

对于汉字的切割最好使用-c(字符),字节(-b)无法满足要求。

  1. 在cut.txt文件中切割出guan
[root@jiangnan data]# cat cut.txt | grep "guan" | cut -d " " -f 1
guan
[root@jiangnan data]# 
  1. 选取系统PATH变量值,第1个“:”开始后的所有路径:
[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命令详解

微信公众号先已开通,搜索 “江小南和他的小伙伴们” 就能找到我哦,各位小伙伴们可以关注一下,文章会进行同步更新,方便查看哦。

03-10
### 关于 `cut` 命令的详细介绍 #### 功能描述 `cut` 是 Linux/Unix 系统中的一个实用工具,专门用于从文件的每一行中提取特定部分的数据。此命令可以按照字节、字符或字段来切割输入流并输出所需的部分[^1]。 #### 使用场景 当面对大量结构化文本数据时(例如日志文件),如果只需要其中某些列的信息而不关心其他内容,则可利用 `cut` 来简化处理过程。 #### 参数说明 - `-b list`: 按照指定的字节数选取数据; - `-c list`: 按照指定的位置选取单个字符; - `-f list`: 根据分隔符划分后的字段编号选择相应的字段; - `-d delim`: 自定义字段之间的分割符号,默认为制表符(TAB); - `-s`: 只显示包含分隔符的行;对于那些不含有任何被用来区分不同域定界符的记录将不会出现在最终的结果集中。 #### 实际应用案例 假设有一个名为 `data.txt` 的文件,其内容如下: ``` apple,banana,cherry dog,elephant,frog grape,horse,iguana ``` 现在想要取出每行的第一个单词作为新列表保存下来,可以通过下面的方式实现: ```bash cut -d',' -f1 data.txt ``` 上述指令表示以逗号 `,` 作分隔符,并取第一个字段的内容。 同样地,若要获取第二和第三个词组成的组合字符串,只需调整参数设置即可完成操作: ```bash cut -d',' -f2-3 data.txt ``` 这会返回由原文件各条目里处于中间位置以及最后一位上的词语构成的新集合。 #### 注意事项 为了确保能够正确解析目标文档,在执行前最好先了解清楚内部存储模式——比如确认好实际采用的是何种类型的间隔标志位(空格?Tab键?还是自定义特殊标记)。另外需要注意的是,当涉及到多字节编码的文字体系(像中文)时,应该谨慎选用基于 “byte” 或者 “character”的截断方式以免造成乱码现象发生。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

傻啦猫@_@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值