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

devtools/2024/9/19 16:23:45/ 标签: linux, 运维, shell, bash, 服务器, 后端

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

基本语法
bash">cut [选项] 文件

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

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

abcdef
123456
xyzabc
  • 提取第 1 到 3 个字符:
    bash">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 列:

    bash">cut -d ',' -f 1,3 data.txt
    

    输出:

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

    bash">cut -d ',' -f 2 --complement data.txt
    

    输出:

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

假设文件 file.txt 内容为:

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

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

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

总结

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


http://www.ppmy.cn/devtools/113073.html

相关文章

Java | Leetcode Java题解之第403题青蛙过河

题目&#xff1a; 题解&#xff1a; class Solution {public boolean canCross(int[] stones) {int n stones.length;boolean[][] dp new boolean[n][n];dp[0][0] true;for (int i 1; i < n; i) {if (stones[i] - stones[i - 1] > i) {return false;}}for (int i 1…

python绘制3d建筑

import matplotlib.pyplot as plt import numpy as np from mpl_toolkits.mplot3d.art3d import Poly3DCollection# 随机生成建筑块数据 def generate_building_blocks(num_blocks, grid_size100, height_range(5, 50), base_size_range(10, 30)):buildings []for _ in range(…

esp32-C2 对接火山引擎实现智能语音(一)

目录 一、火山引擎大模型简介 1)火山引擎网址: 2)首先需要先注册火山引擎账号 3)语音识别——即语音转为文本 一句话识别 流式语音识别 录音文件识别标准版 录音文件识别极速版 4)语音合成——文本转音频 一、火山引擎大模型简介 火山引擎的智能语音技术,基于业界先…

《ChatGPT:强大的人工智能聊天机器人》

一、引言 在当今科技飞速发展的时代&#xff0c;人工智能已经成为了各个领域的热门话题。其中&#xff0c;聊天机器人作为人工智能的一个重要应用&#xff0c;正在逐渐改变人们的生活和工作方式。ChatGPT 作为一款强大的人工智能聊天机器人&#xff0c;以其出色的语言理解和生成…

纯血鸿蒙NEXT常用的几个官方网站

一、官方文档 https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/Readme-CN.md刚入门查看最多的就是UI开发模块&#xff0c;首先要熟悉组件使用 二、官方API参考 https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/development-i…

windows下自启springboot项目(jar+nginx)

1、将springboot项目打包为jar 2、新建文本文档 test.txt&#xff0c;并输入 java -jar D:\test\test.jar&#xff08;修改为自己的jar包位置&#xff09; 保存 然后修将后缀名改为 .bat 3、在同一目录再新建 文本文档test.txt&#xff0c;输入以下内容&#xff0c;&…

支持iPhone 16新品预售,饿了么同步上线专人配送等特色服务

9月10日凌晨&#xff0c;2024年 Apple 秋季新品发布会上正式揭晓iPhone 16新机。9月10日一早&#xff0c;饿了么同步宣布&#xff1a;今年将携手近4000家Apple 授权专营店&#xff0c;支持iPhone 16新品预售及现货的同步开售。新机现货首发当日&#xff0c;饿了么消费者最快半小…

Redis主要问题(缓存问题)

Redis Redis主要面向缓存、分布式锁、消息队列等问题。 而在缓存中常存在穿透、击穿、雪崩、双写一致、持久化、数据过期、数据淘汰等问题。 1.缓存穿透 通过get请求查询redis&#xff0c;redis响应查数据库&#xff0c;正常情况下&#xff0c;若查询到数据&#xff0c;则正…

anaconda安装manim

anaconda安装manim &#xff08;安装时间2024年9月15日&#xff0c;后续版本变化再做更新&#xff09; 创建环境test 等一下我们创建一个manim项目作为试水 切换到test环境 {:height 430, :width 780} 输入以下代码 # using conda or mamba conda create -n my-manim-envi…

【C++11 —— 线程库】

C11 —— 线程库 thread类介绍线程函数参数原子性操作库(atomic)lock_guard与unique_lockmutex的种类lock_guardunique_lock 两个线程交替打印奇偶数 thread类介绍 在C11之前&#xff0c;涉及到多线程的问题&#xff0c;都是和平台相关的&#xff0c;比如windows和Linux下各有…

利用LlamaIndex构建ARG本地知识库

文章目录 1. 环境准备2. 启用诊断日志3. 配置本地模型4. 配置本地向量模型5. LlamaIndex全局配置6. 创建 PGVectorStore7. 从数据库加载数据8. 文本分割器: SpacyTextSplitter9. 配置管道10. 创建向量存储索引11 .指定响应模式&#xff0c;以及启用流式响应 在现代的人工智能应…

【电脑组装】✈️从配置拼装到安装系统组装自己的台式电脑

目录 &#x1f378;前言 &#x1f37b;一、台式电脑基本组成 &#x1f37a;二、组装 &#x1f379;三、安装系统 &#x1f44b;四、系统设置 &#x1f440;五、章末 &#x1f378;前言 小伙伴们大家好&#xff0c;上篇文章分享了在平时开发的时候遇到的一种项目整合情况&…

通信工程学习:什么是HFC混合光纤同轴电缆

HFC&#xff1a;混合光纤同轴电缆 HFC&#xff08;Hybrid Fiber Coaxial&#xff09;混合光纤同轴电缆是一种结合了光纤与同轴电缆的宽带接入网技术。以下是对HFC混合光纤同轴电缆的详细解释&#xff1a; 一、HFC混合光纤同轴电缆的定义与概述 定义&#xff1a;HFC是一种结合光…

windows系统docker装milvus向量数据库

首先创建一个文件夹比如milvus,在创建如下文件 docker-compose.yml文件如下: version: 3.5services:etcd:container_name: milvus-etcdimage: quay.io/coreos/etcd:v3.5.5environment:- ETCD_AUTO_COMPACTION_MODErevision- ETCD_AUTO_COMPACTION_RETENTION1000- ETCD_QUOTA_B…

2024.9.11(k8s环境搭建)

一、k8s环境搭建 编号主机名称ip配置1k8s-master192.168.8.1772k8s-node1192.168.8.1783k8s-node2192.168.8.168 1、免密登录 [rootk8s-master ~]# ssh-keygen [rootk8s-master ~]# ssh-copy-id root192.168.8.178 [rootk8s-master ~]# ssh-copy-id root192.168.8.168 2、3台…

解决:Vue3 - defineProps 设置默认值报错问题

目录 1&#xff0c;问题2&#xff0c;分析2.1&#xff0c;按报错提示信息测试2.2&#xff0c;测试 vue-i18n 3&#xff0c;解决 1&#xff0c;问题 使用 defineProps 指定默认值时报错&#xff0c;代码如下&#xff1a; <template><input type"text" :pla…

数据结构(Day13)

一、学习内容 内存空间划分 1、一个进程启动后&#xff0c;计算机会给该进程分配4G的虚拟内存 2、其中0G-3G是用户空间【程序员写代码操作部分】【应用层】 3、3G-4G是内核空间【与底层驱动有关】 4、所有进程共享3G-4G的内核空间&#xff0c;每个进程独立拥有0G-3G的用户空间 …

React项目中使用发布订阅模式

React项目中使用发布订阅模式 1.创建发布订阅器2.在组件中使用发布订阅器3. 订阅数据 发布订阅模式&#xff08;也称观察者模式&#xff09;是一种管理跨组件通信的有效方式&#xff0c;尤其是在不希望直接依赖于特定组件的情况下。这种模式允许一个对象&#xff08;发布者&…

SAP B1 学习笔记 - 易混淆字段名(持续更新中)

背景 在 SAP B1 的单据中&#xff0c;由于同一单据时常对应着多个后台表单&#xff0c;且后台表单内包含的字段信息往往远大于单据显示出来的&#xff0c;在配置时经常出现多个字段混淆、无系统信息提示字段名模糊的情况&#xff0c;这里总结常见的易混淆难查找的后台字段名。…

Linux whereis和which的区别

功能概述 whereis命令 whereis主要用于查找二进制文件、源代码文件和手册页文件的位置。它会在特定的目录列表中查找&#xff0c;这些目录包括二进制文件目录&#xff08;如/bin、/sbin、/usr/bin、/usr/sbin等&#xff09;、源代码目录&#xff08;如/usr/src&#xff09;和手…