前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux Shell工具篇 - 文本切割工具cut

Linux Shell工具篇 - 文本切割工具cut

作者头像
兜兜转转
发布2023-03-29 14:27:33
2.3K0
发布2023-03-29 14:27:33
举报
文章被收录于专栏:CodeTimeCodeTime

介绍

cut 译为“剪切, 切割” ,它是一个强大文本处理工具,它可以将文本按列进行划分处理。cut 命令逐行读入文本,然后按列划分字段并进行提取、输出等操作。

语法

代码语言:javascript
复制
cut [options] filename

options参数说明:

选项参数

功能

-f 提取范围

列号,获取第几列

-d 自定义分隔符

自定义分隔符,默认为制表符。

-c 提取范围

以字符为单位进行分割

-b 提取范围

以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。

-n

与“-b”选项连用,不分割多字节字符;

提取范围说明:

提取范围

说明

n-

提取指定第n列或字符或字节后面所有数据

n-m

提取指定第n列或字符或字节到第m列或字符或字节中间的所有数据

-m

提取指定第m列或字符或字节前面所有数据

n1,n2,…

提前指定枚举列的所有数据

示例:

  • cut切割提取列:cut 文件或数据 -d 分隔符切割 -f 提取第X列
  • cut切割提取字符:cut 文件或数据 -c 提取字符范围
  • cut切割提取字节:cut 文件或数据 -nb 提取字节范围

演示

准备数据文件:cut1.txt

代码语言:javascript
复制
touch cut1.txt

编辑文件添加内容

代码语言:javascript
复制
AA  hello 11 XX
BB  world 22 XXX
CC  Shell 33 XXXX
DD  it 44 XXXXXXX

1.切割提取指定列数据

提取文件中第一列数据:

代码语言:javascript
复制
cut cut1.txt -d " " -f 1

#输出
AA
BB
CC
DD

提取文件中第一列,第三列,枚举查找:

代码语言:javascript
复制
cut cut1.txt -d " " -f 1,3

#输出
AA 11
BB 22
CC 33
DD 44

提取文件中第二列、第三列、第四列,范围查找:

代码语言:javascript
复制
cut cut1.txt -d " " -f 2-4

#输出
 hello 11
 world 22
 Shell 33
 it 44

注意:由于cut1.txt文本文件第一列和第二列之间是2个空格,而我们设置的分隔符是1个空格,所以这里的第2列内容实际上是1个空格。

提取文件中第一列后面所有列的数据(从第二列开始一直到最后,包括第二列):

代码语言:javascript
复制
cut cut1.txt -d " "  -f 2- 
 
#输出
 hello 11 XX
 world 22 XXX
 Shell 33 XXXX
 it 44 XXXXXXX

提起文件中结束列前面所有列的数据(从开始一直到第三列,包括第三列):

代码语言:javascript
复制
cut cut1.txt -d " " -f -3  # -3 提取第3列前面所有列数据,包括第3列

#输出
AA  hello
BB  world
CC  Shell
DD  it

2.切割提取指定字符数据

提取每行前5个字符:

代码语言:javascript
复制
cut cut1.txt -c 1-5

#输出
AA  h
BB  w
CC  S
DD  i

提取每行第5个字符以后的数据:

代码语言:javascript
复制
cut cut1.txt -c 5-

#输出
hello 11 XX
world 22 XXX
Shell 33 XXXX
it 44 XXXXXXX

提取每行第5个字符前面所有字符:

代码语言:javascript
复制
cut cut1.txt -c -5

#输出
AA  h
BB  w
CC  S
DD  i

3.切割提取指定字节数据

提取字符串”abc传智播客” 前3个字节:

代码语言:javascript
复制
echo "abc传智播客" | cut -b -3

提取字符串”abc传智播客” 前4个字节:

代码语言:javascript
复制
echo "abc传智播客" | cut -b -4

提取字符串”abc传智播客” 前6个字节:

代码语言:javascript
复制
echo "abc传智播客" | cut -b -6
# 由于linux系统默认utf-8编码表, 所以一个汉字占3个字节

提取字符串”abc传智播客” 前4个字节,就可以将汉字 “传”输出:

代码语言:javascript
复制
echo "abc传智播客" | cut -nb -4
#  -n 取消多字节字符分割直接输出

4.切割提取指定单词数据

在文本文件中切割出指定单词:

代码语言:javascript
复制
cat cut1.txt | grep itheima | cut -d " " -f 2

5.切割提取bash进程的PID号

代码语言:javascript
复制
ps -aux | grep 'bash' | head -n 1 | cut -d " " -f 8

6.切割提取IP地址

代码语言:javascript
复制
ifconfig | grep broadcast | cut -d " " -f 10

运行效果

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-02-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 语法
  • 演示
    • 1.切割提取指定列数据
      • 2.切割提取指定字符数据
        • 3.切割提取指定字节数据
          • 4.切割提取指定单词数据
            • 5.切割提取bash进程的PID号
              • 6.切割提取IP地址
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档