Linux 运维中怎么使用 cut 命令按字符或分隔符提取文本指定列

酷敏同学_3046

酷敏同学_3046

2026-09-24

423人浏览

原创

cut 提取文本分两类:按字符位置(-c)适合固定宽度文本,按分隔符字段(-f)需指定分隔符(-d),默认仅识别 tab;不支持多字符分隔符、引号解析及不规整数据,复杂场景应选 awk 或 sed。

linux 运维中怎么使用 cut 命令按字符或分隔符提取文本指定列

Linux 运维中用 cut 提取文本,关键在分清“按字符位置”和“按分隔符字段”两类场景——前者不依赖分隔符,后者必须明确指定分隔符,且默认只认 Tab,不是空格也不是逗号。

按字段提取(-f):必须配 -d 指定分隔符

绝大多数运维日志、配置文件(如 /etc/passwd、CSV)靠分隔符对齐,cut -f 是主力,但容易因忽略 -d 而失败:

  • 处理 /etc/passwd(冒号分隔):cut -d':' -f1,6 /etc/passwd 提取用户名和家目录
  • 解析空格分隔的 ps 输出:ps aux | cut -d' ' -f2,11 ——但注意:多个连续空格会被当多个字段,结果错位;更稳做法是先用 awk 或加 tr -s ' ' 压缩空格
  • 读取 CSV 文件:cut -d',' -f2,4 data.csv 可取第2、4列;但若某字段含英文逗号(如 "a,b",c),cut 无法识别引号,此时应换 awk -F',' 或专用 CSV 工具
  • 跳过表头再取字段:不能用 cut 自己跳行,得组合 tail -n +2 file.csv | cut -d',' -f1

按字符位置提取(-c):适合固定宽度日志或对齐文本

当文本没有统一分隔符,但列是严格左对齐(如 ls -l 输出、某些审计日志),就该用 -c 按列宽硬截:

linux-performance-analyzer
linux-performance-analyzer

Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。

下载
  • ls -l 中权限字段(前10字符):ls -l | cut -c1-10
  • 提取每行第15–25个字符:cut -c15-25 access.log
  • -c 按 Unicode 字符计数,中文、英文字母都算1个位置,比 -b 更安全;UTF-8 下用 -b 可能切碎汉字,除非加 -n 选项防止跨字节截断

常用组合与避坑要点

实际运维中常需过滤、补全或反向提取:

  • 只输出含分隔符的行(过滤脏数据):cut -d',' -f1 -s data.csv,避免无逗号的空行干扰
  • 反向提取(去掉某列):cut -d':' -f1,3,5 --complement /etc/passwd 输出除第1、3、5列外的所有字段
  • 更换输出分隔符:cut -d',' -f1,3 --output-delimiter='|' data.csv 把逗号输出改成竖线
  • 确认真实分隔符:cat -A file 查看是否为 ^I(Tab),别凭肉眼判断空格或制表符

什么情况不该用 cut

cut 简单高效,但有硬限制:

  • 不支持多字符分隔符(如 -d'::' 报错),只能单字符
  • 不解析引号包裹的字段(CSV 中 "field,with,comma" 会被错误拆开)
  • 不自动处理字段缺失或对齐错位,遇到不规整数据易出错
  • 需要条件判断、正则匹配、跨行处理时,应直接上 awksed

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3630

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3153

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2213

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

5290

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

4962

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

2973

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2485

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

2699

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

277

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习