shell编程-cut命令详解(超详细)

前言

cut 命令是一个在命令行中使用的用于提取文件内容的工具。它可以根据指定的字段或字符位置来截取文件中的数据,并将结果输出到标准输出或指定的文件中。本文将详细介绍 cut 命令的常用选项和参数,帮助您更好地理解和使用 cut 命令。


一、cut命令介绍

1. cut命令简介

cut 命令用于从文件或标准输入中提取指定字段或字符位置的数据。它可以根据字段的分隔符将每行数据分割成多个字段,并选择需要提取的字段进行输出。cut 命令是一个简单而实用的工具,常用于处理文本文件中的数据。

2. cut命令的基本语法

cut 命令的基本语法如下:

cut [选项]... [文件]...

其中,文件 是要处理的文件名或标准输入。

3. 常用的cut命令选项

下面是一些常用的 cut 命令选项的说明:

  • -b, --bytes=列表:用于选择指定的字节范围,并将其打印到标准输出。
  • -c, --characters=列表:提取指定字符位置的数据。
  • -d, --delimiter=分界符:指定字段的分隔符,默认为制表符。
  • -f, --fields=LIST:提取指定字段的数据。如果某行不包含分隔符字符,则打印整行(除非使用了 -s 选项)。
  • -n:与 -b 一起使用,不分割多字节字符。
  • --complement:补集模式,提取除指定字段或字符位置外的数据。
  • -s, --only-delimited:不打印不包含分隔符的行。
  • --output-delimiter=字符串:指定输出字段的分隔符。
  • --help:显示帮助信息并退出。
  • --version:显示版本信息并退出。

4. 常用的cut命令参数

以下是关于 -b-c-f 选项参数的解释:

  • N:从第1个开始数的第N个字节。
  • N-:从第N个开始到所在行结束的所有字符。
  • N-M:从第N个开始到第M个之间(包括第M个)的所有字符。
  • -M:从第1个开始到第M个之间(包括第M个)的所有字符。

二、cut命令示例用法

假设有一个文件 file.txt,内容如下:

Hello, World!

下面是一些 cut 命令的示例用法:

1. 选择指定的字节范围并打印到标准输出

cut -b 1-5 file.txt

这将选择文件中的第1到第5个字节并打印输出。
在这里插入图片描述

2. 提取指定字符位置的数据并打印到标准输出

cut -c 1,3,5 file.txt

这将选择文件中的第1、第3和第5个字符并打印输出。
在这里插入图片描述

3. 指定字段的分隔符

cut -d ',' -f 2 file.txt

这将使用逗号作为分隔符,选择文件中的第2个字段并打印输出。
在这里插入图片描述

4. 提取指定字段的数据并打印到标准输出

cut -f 1,3 file.txt

这将选择文件中的第1和第3个字段并打印输出。
在这里插入图片描述

5. 不分割多字节字符

cut -nb 1-3 file.txt

这将选择文件中的第1到第3个字节,而不会分割多字节字符。
在这里插入图片描述

6. 提取除指定字段或字符位置外的数据

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

这将使用逗号作为分隔符后,选择除了文件中的第2个字段之外的所有字段并打印输出。
在这里插入图片描述

7. 只打印包含分隔符的行

cut -d ',' -s -f 2 file.txt

这将只选择包含逗号分隔符的行中的第2个字段并打印输出。
在这里插入图片描述

8. 指定输出字段的分隔符

cut -d ',' --output-delimiter='|' -f 1,3 file.txt

这将使用竖线作为输出字段的分隔符,并选择文件中的第1和第2个字段并打印输出。
在这里插入图片描述

以上是 cut 命令的一些常见用法,还有更多选项和参数可以根据具体需求来使用。可以通过 man cut 命令或 cut --help 命令来查看完整的选项和参数列表。


总结

cut 命令是一个简单而实用的命令行工具,用于提取文件中指定字段或字符位置的数据。本文介绍了 cut 命令的基本语法和常用选项、参数,以及示例用法,包括提取字符位置的数据、提取字段的数据、指定字段分隔符、补集模式和指定输出字段分隔符等功能。通过灵活运用 cut 命令,您可以方便地处理文本文件中的数据。

希望本文对您有所帮助!如有任何疑问或问题,请随时在评论区留言。感谢阅读!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/218982.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js 转换为数组并返回(Array.of())

Array提供了方法直接将一组值转换为数组并返回 Array.of()方法 Array.of(1,2,3) 结果

洛谷P1013 [NOIP1998 提高组] 进制位

洛谷P1013 [NOIP1998 提高组] 进制位 第一次写注释(笑) #include<bits/stdc.h> using namespace std; int n,nn; string a[15][15]; int b[15][15],c[15][15]; int main() {cin>>n;for(int i1;i<n;i)for(int j1;j<n;j)cin>>a[i][j]; …

iOS开发:苹果相关错误码

目录 NSCocoaErrorDomainNSURLErrorDomainSKErrorCodeSKANErrorDomain NSError Codes NSCocoaErrorDomain 所属库文件&#xff1a;Foundation/FoundationErrors.h NS_ERROR_ENUM(NSCocoaErrorDomain) {// File system and file I/O related errors, with NSFilePathErrorKey…

【NSX-T】2. 搭建NSX-T环境 —— 配置 NSX-T 基本设置

目录 2. 配置 NSX-T 基本设置2.1 访问 NSX Manager UI2.2 添加和查看 NSX Manager 许可证2.3 设置用户界面模式 参考资料 2. 配置 NSX-T 基本设置 2.1 访问 NSX Manager UI 打开跳板机浏览器&#xff0c;在URL中输入&#xff1a;https://192.168.1.23/ 或 https://manager32.…

【教程】 Vue混淆加密与还原

目录 引言 混淆 使用ipaguard来对程序进行加固 还原 总结 参考资料 引言 Vue是一种流行的JavaScript框架&#xff0c;用于构建用户界面。它简单易用且功能强大&#xff0c;备受开发者喜爱。然而&#xff0c;在传输和存储过程中&#xff0c;我们需要保护Vue代码的安全性。混…

centos7中的管道和重定向

重定向 0 标准输入 1 标准输出 2 标准错误 3 进程在执行的过程中打开的其他文件 & 标准正确和标准错误的混合输出 输出重定向 &g…

【Linux】锁的简单封装以及原理解析

文章目录 一、锁的原理过程1&#xff1a;过程2过程3过程4 二、 锁的简单封装1.LockGuard.hpp2.使用1.正常锁的使用2.使用封装后的 总结 一、锁的原理 为了实现互斥锁操作,大多数体系结构都提供了swap或exchange指令,该指令的作用是把寄存器和内存单元的数据相交换,由于只有一条…

算法Day31 房间收纳

房间收纳 Description 对于零落的玩具&#xff0c;你需要进行收纳&#xff0c;为了将最多的玩具进行收纳&#xff0c;请你合理分配收纳柜和房间数量。 请你将一些玩具收纳在一个房间中&#xff0c;给你一个二维数组 roomTypes&#xff0c;其中的roomTypes[i] {numberOfBoxes_…

Narak

靶场下载 https://download.vulnhub.com/ha/narak.ova 信息收集 # nmap -sn 192.168.1.0/24 -oN live.nmap Starting Nmap 7.94 ( https://nmap.org ) at 2023-12-09 22:18 CST Nmap scan report for 192.168.1.1 (192.168.1.1) Host is up (0.…

【模型训练】声音克隆

【模型训练】声音克隆

AI智能视界,视频监控技术的革新与突破

智能视频监控概述 TSINGSEE青犀智能监控系统是通过摄像头采集视频数据&#xff0c;经过压缩技术处理后传输至服务器&#xff0c;再由服务器进行存储和管理并汇聚到EasyCVR视频融合平台之中&#xff0c;进行统一的分发处理。采用先进的视频压缩技术&#xff0c;确保视频质量&am…

锂电池基础知识及管理方式总结

这两天在排查一个锂电池无法充电的问题&#xff0c;用的是电池管理芯片BQ25713&#xff0c;网上相关的资料也很少&#xff0c;查看数据手册时&#xff0c;里面也有很多术语参数等不是很理解&#xff0c;所以&#xff0c;在此对锂电池的基础知识做个简单的总结&#xff0c;方面后…

react中的setState是同步还是异步

setState 只在合成事件和钩子函数中是“异步”的&#xff0c;在原生事件和 setTimeout 中都是同步的。 合成事件&#xff1a;就是react 在组件中的onClick等都是属于它自定义的合成事件 原生事件&#xff1a;比如通过addeventListener添加的&#xff0c;dom中的原生事件 setS…

如何通过控制台排查定位EasyCore?

过去当数据库出现了问题&#xff0c;我们只能通过日志去查看问题&#xff0c;可能是数据库有了重启、主节点发生了漂移或查询语句太复杂&#xff0c;这一整套逻辑走下来只能winsen, karel。 我们经常说数据库负载过高&#xff0c;请求很多&#xff0c;但我们却不能直接告诉哪个…

python常见代码用法

1.result [[]] * n 和 result [[] for _ in range(n)] 辨析 n 3 result [[]] * nprint(result) # 输出&#xff1a;[[], # [], # []]print(result[0] is result[1] is result[2]) # 输出&#xff1a;True* 运算符进行复制&#xff0c;这些空列表实际…

MacOS系统使用ESP8266(CP2102)开发板

开发板实物 连接开发板到macos 终端输入lsusb查看,开发板硬件成功识别 打开Arduino IDE并选择开发板 开发板连接成功 编译代码 上传成功 打开串口监视器,按一下RST键,可看到WIFI名输出及WIFI的IP输出 WIFI热点功能启用

Ray使用备注

Ray使用备注 框架介绍 Ray是一种python分布式任务调度框架其支持 无状态的任务并发执行,也支持 有状态的任务按照一定顺序执行其支持 分布式调度器,在一个节点上创建的任务先给本节点的局部调度器,并让本节点自己处理,当资源不够时,再将任务发给全局调度器供其他节点处理其支…

Python 自动化之修理PDF文件(二)

PDF文件_合并与拆分PDF文档Pro版本 文章目录 PDF文件_合并与拆分PDF文档Pro版本前言一、要做成什么样子二、主要用到的函数三、基本思路1.引入库2.创建用户输入模块3.确定主框架 四、文档合并代码模块1.用户输入和函数调用2.引导用户输入文档信息3.合并文档内容4.命名新文档生成…

CMake 构建指南:如何提高 C-C++ 项目的可维护性

如果您是一位 C/C 开发人员&#xff0c;那么您一定知道在编写和维护大型项目时所面临的挑战。这些项目通常包含大量的源代码、库和依赖项&#xff0c;需要耗费大量的时间和精力才能构建和维护。在这种情况下&#xff0c;使用自动化工具可以大大减轻您的负担&#xff0c;提高项目…

传输层协议:TCP协议和UDP协议

文章目录 传输层协议&#xff1a;TCP协议和UDP协议一、TCP协议介绍&#xff08;面向连接&#xff0c;稳定&#xff0c;慢&#xff09;1、TCP特性2、TCP报文格式3、TCP三次握手4、TCP四次挥手5、常用的TCP端口号及其功能 二、UDP协议介绍&#xff08;无连接&#xff0c;不稳定&a…