简明Linux命令行笔记:cut
从输入行中选取字符或者字段
cut [options] [file-list]
cut 从输入行中选取字符或者字段,并将他们写到标准输出,字符和字段从1开始编号
参数
file-list 是文件的路径名列表,如果没有指定参数,或者使用连字符(-)来代替文件名,那么cut将从标准输入来获取输入
选项
-c clist 选取由clist中的列号指定的字符。clist的值为列号(多个值用逗号分隔)或者列范围,列范围用两个列号指定,
中间用连字符隔开。范围-n表示从第1~n列。n-表示从第n列到行尾。n-m表示从第n~m列
-d dchar 将dchar作为输入字段的分割符,默认分隔符为制表符,特殊情况下可使用转义字符
-f flist 选择在flist中指定的字段。flist的值为字段号(多个值用逗号分隔)或者字段的范围。字段范围可以用两个字段号指定,
中间用连字符隔开。范围-n表示从第1~n个字段,范围n-表示从第n个字段到行尾,n-m表示从第n~m个字段。默认字
段的分隔符为制表符,也可以使用-d选项来指定分割符
-s 仅打印包含分割符的行,如果没有此选项,则打印不包含分割符的行
示例
先看看原文件
$ cat a.txt 1111 2222 3333 4444 5555 1111 2222 3333 4444 5555 1111 2222 3333 4444 5555 1111 2222 3333 4444 5555 ------------------------
cut -c 列范围
$ cut -c1-4 a.txt 1111 1111 1111 1111 ----
指定列范围打印字符
cut -c 列号
$ cut -c1,6 a.txt 12 12 12 12 --
指定列号打印字符
cut -d -f
$ cut -d' ' -f1-3 a.txt 1111 2222 3333 1111 2222 3333 1111 2222 3333 1111 2222 3333 ------------------------
指定分隔符和字段范围打印字符,此处文本文件中默认以space作为分隔符,最底下没有分隔符,所以全部打印
还可用cut -d -fn,n指定字段号
cut -s -d -f
$ cut -s -d' ' -f1-3 a.txt 1111 2222 3333 1111 2222 3333 1111 2222 3333 1111 2222 3333
使用-s选项打印包含分隔符的行,最末行没有分隔符,所以不打印
Tips
虽然cut在功能上有所限制,但是它能较快的分割列和字段,有时能与paste配合使用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构