linux cut命令 使用教程

发布时间:2023-01-19 10:14:31 作者:yexindonglai@163.com 阅读(617)

简介

cut的工作就是“剪”,具体的说就是在文件中负责剪切数据用的。cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段输出。

一、基本语法

  1. cut [选项参数] filename

命令选项

选项 说明
-d 分隔符,按照指定分隔符分割列。相当于java的 split()方法,与 -f 一起使用
-f 依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思(列号,提取第几列)
-c 以字符 (characters) 的单位取出固定字符区间
-b 以字节为单位进行分割

缺陷和不足

如果文件里面的某些域是由若干个空格来间隔的,那么用cut就有点麻烦了,因为cut只擅长处理“以一个字符间隔”的文本内容。

二、举个栗子

1、准备数据

  1. [root@jiangnan data]$ touch cut.txt
  2. [root@jiangnan data]$ vim cut.txt
  3. dong shen
  4. guan zhen
  5. wo wo
  6. lai lai
  7. le le

2、切割cut.txt第一列

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

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

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

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

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

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

  1. [root@jiangnan data]# cut -c 5-8 cut.txt
  2. she
  3. zhe
  4. wo
  5. lai
  6. le

5、切割cut.txt的第2,4,6个字节

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

  1. [root@jiangnan data]# cut -b 2,4,6 cut.txt
  2. ogs
  3. unz
  4. o o
  5. a l
  6. e e

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

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

7、切割字符串中的中文

7.1、切割第2,3个字符
  1. [root@jiangnan data]# echo "我爱你中国" | cut -c 2,3
  2. 爱你

7.2、切割第2,3个字节

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

  1. [root@jiangnan data]# echo "我爱你中国" | cut -b 2,3
7.3、输出前2列的内容
  1. [root@jiangnan data]# echo "我 爱 你 中 国" | cut -d ' ' -f -2
7.4、输出第2列之后的内容
  1. [root@jiangnan data]# echo "我 爱 你 中 国" | cut -d ' ' -f 2-

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

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

9、选取系统PATH变量值,第2个“:”开始后的所有路径:

  1. [root@jiangnan data]# echo $PATH
  2. /usr/local/java/jdk1.8.0_161/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
  3. [root@jiangnan data]# echo $PATH | cut -d: -f 2-
  4. /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

关键字linux