shell之使用cut切割文本文件
我们知道可以通过工具grep或egrep按行筛选记录,这里我们可以通过cut工具对文本按列进行切分,它可以指定定界符,linux下制表符是默认的定界符。
#cut -f 2,3 textfile
这个命令可以显示textfile文件的第2、3列。
例如:有文件如下:
# cat dept
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
1)# cut -f 2,3 dept
ACCOUNTING NEW YORK
RESEARCH DALLAS
SALES CHICAGO
OPERATIONS BOSTON
2)# cut -s -f 2,3 dept
ACCOUNTING NEW YORK
RESEARCH DALLAS
SALES CHICAGO
OPERATIONS BOSTON
其中-s选项可以过滤掉没有按照指定定界符的行。
3)# cut -s -f1 --complement dept
ACCOUNTING NEW YORK
RESEARCH DALLAS
SALES CHICAGO
OPERATIONS BOSTON
使用-f1 --complement选项输出结果不显示第1行。
4)# cut -s -d":" -f1,2,3,4,5,6,7 dept
root:x:0:0:root:/root:/bin/bash
spark:x:481:480:Spark:/var/lib/spark:/sbin/nologin
hue:x:480:479:Hue:/usr/lib/hue:/bin/false
对于不是按照标准定界符分隔的文件,可以使用-d参数指定定界符。
通过指定字段、字符、字节范围进行切割:
此种方法依赖于下表中的内容:
参数 |
说明 |
N- N-M -M |
从第n个字符、字节、字段开始至行尾 从第n个字符、字节、字段至第m(包含)字符、字节、字段 从第1个字符、字节、字段开始至第m个字符、字节、字段 |
-b -c -f |
表示字节 表示字符 表示字段 |
--output-delimiter |
指定输出定界符 |
例如:
# cat cuttext
qwertyuiopasdfghjkl
qwertyuiopasdfghjkl
Qwertyuiopasdfghjkl
1)# cut -c1-5,6-10 cuttext --output-delimiter ","
qwert,yuiop
qwert,yuiop
qwert,yuiop
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了