当前位置: 首页 > news >正文

Linux cut命令详解使用:掌握高效文本切割

cut 是 Linux 中一个用于从文本文件或标准输入中提取指定字段的命令。它根据分隔符或者字符位置来裁剪文本,是处理文本文件中的字段、列和子字符串的常用工具。

基本语法
cut [选项] 文件

命令 | cut [选项]
常用选项
  • -b:按字节位置切割(指定字节范围)。
  • -c:按字符位置切割(指定字符范围)。
  • -d:指定字段分隔符(默认是制表符 \t)。
  • -f:指定要显示的字段(结合 -d 选项使用)。
  • --complement:显示指定范围之外的字段或字符。
1. 按字符位置切割

假设有一个包含多行文本的文件 file.txt

abcdef
123456
xyzabc
  • 提取第 1 到 3 个字符:
    cut -c 1-3 file.txt
    
    输出:
    abc
    123
    xyz
    
2. 按字段分隔符切割

假设文件 data.txt 内容如下:

name,age,location
Alice,30,New York
Bob,25,Los Angeles
Charlie,35,Chicago
  • 使用 , 作为分隔符,提取第 1 和第 3 列:

    cut -d ',' -f 1,3 data.txt
    

    输出:

    name,location
    Alice,New York
    Bob,Los Angeles
    Charlie,Chicago
    
  • 提取除第 2 列之外的字段:

    cut -d ',' -f 2 --complement data.txt
    

    输出:

    name,location
    Alice,New York
    Bob,Los Angeles
    Charlie,Chicago
    
3. 从标准输入提取字段
  • echo 输出中提取第一个字段:
    echo "apple orange banana" | cut -d ' ' -f 1
    
    输出:
    apple
    
4. 按字节位置切割

假设文件 file.txt 内容为:

abcdefgh
12345678
xyzabcde
  • 提取第 1 到 4 个字节:
    cut -b 1-4 file.txt
    
    输出:
    abcd
    1234
    xyza
    
5. 结合其他命令使用
  • 使用 ps 命令并结合 cut 提取某一列:
    ps aux | cut -d ' ' -f 1
    
    这将提取 ps 命令输出的第 1 列,即用户信息。
6. 处理多字符分隔符

cut 不支持多字符分隔符的直接处理,若需要处理多字符分隔符,可使用 awksed

echo "apple##orange##banana" | awk -F '##' '{print $1, $3}'

总结

cut 命令非常适合快速从文件中提取字段或列,尤其适合以单字符分隔符(如逗号、空格)分隔的结构化文本数据。结合其他命令管道使用,能够高效处理系统输出或文件内容。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • jackson 中常用注解说明
  • Leetcode 3282. Reach End of Array With Max Score
  • JVM源码解析
  • 第一篇 第3章 不确定型分析 第4章 设备更新分析 第5章价值工程
  • 多个vue项目部署到nginx服务器
  • Java 21的Preferences API的笔记
  • java 长连接中的sse与websocket含义, 两者的区别
  • 【Java】解决项目启动时端口被占用
  • 相互作用先验下的 3D 分子生成扩散模型 - IPDiff 评测
  • 顶级AI框架用于构建聊天机器人
  • linux从0到1 基础完整知识
  • k8s环境搭建
  • Redis中String类型的基本命令
  • 工作分享,小红书企业內推码附送
  • 职业技能大赛背景下的移动互联网应用软件开发(Android)实训室建设方案
  • 「面试题」如何实现一个圣杯布局?
  • 2017-08-04 前端日报
  • bootstrap创建登录注册页面
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • Git 使用集
  • happypack两次报错的问题
  • Hibernate最全面试题
  • HTTP请求重发
  • Java读取Properties文件的六种方法
  • leetcode98. Validate Binary Search Tree
  • Mithril.js 入门介绍
  • Python语法速览与机器学习开发环境搭建
  • SegmentFault 2015 Top Rank
  • VuePress 静态网站生成
  • 蓝海存储开关机注意事项总结
  • 实战|智能家居行业移动应用性能分析
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 携程小程序初体验
  • 2017年360最后一道编程题
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • 如何正确理解,内页权重高于首页?
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • ​人工智能书单(数学基础篇)
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • $$$$GB2312-80区位编码表$$$$
  • (06)Hive——正则表达式
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (2015)JS ES6 必知的十个 特性
  • (7)svelte 教程: Props(属性)
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (编译到47%失败)to be deleted
  • (二)原生js案例之数码时钟计时
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (力扣)循环队列的实现与详解(C语言)
  • (六)c52学习之旅-独立按键
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (转)Sublime Text3配置Lua运行环境