简明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配合使用

posted @   Nerxious  阅读(3086)  评论(0编辑  收藏  举报
编辑推荐:
· .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语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示