cut 和 awk 用法
一、cut
cut 侧重于对内容进行列切割
- -d 后面的是分割符,表示用什么符号来分割符来分割列,分隔符使用引号括起来
- -f 后面跟着要选择的字段列,从1开始,表示第一列,如果要多列,可以用逗号分隔 ,可以使用start-end表示一个区间,解决使用逗号的烦恼。
- -c 参数后面跟着要选择的字符偏移
- -b 表示后面跟着要选择的字节偏移
实例演示:
# 实例文本
[root@localhost wangzy]# cat test.txt
aaa;bbb;ccc;ddd;eee
fff;ggg;hhh
iii;jjj;kkk;lll;mmm;nnn
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
# -d 分隔符用引号括起来
[root@localhost wangzy]# cut -f 2,3 -d ";" test.txt
bbb;ccc
ggg;hhh
jjj;kkk
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
# 2-3 效果同 2,3效果一样。
[root@localhost wangzy]# cut -f 2-3 -d ";" test.txt
bbb;ccc
ggg;hhh
jjj;kkk
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
# 以 冒号 为分隔符
[root@localhost wangzy]# cut -f 7 -d ":" test.txt
aaa;bbb;ccc;ddd;eee
fff;ggg;hhh
iii;jjj;kkk;lll;mmm;nnn
/bin/bash
/sbin/nologin
/sbin/nologin
/sbin/nologin
[root@localhost wangzy]#
注意:-d只能和-f一起配合使用,-c不能和-d一起使用,只能单独使用。想一想就很容易明白嘛,-d表示指定分隔符,而-c表示指定区间的字符,不需要分割。
二、awk
awk 擅长取列
- awk用来处理文本和数据,功能很强大,如果是一些简单的操作,可以使用cut命令来实现
- -F 后面加上分隔符 ,建议空格分开后,使用引号将分隔符括起来,不加-F时,默认是以空格分隔。$0表示整行数据,$1表示第1个字段
用法
用法:awk [options] ‘{print NR,$0}’ file -F 指定字段分隔符 NR 表示行号 $0 表示这一行的内容 $1 数字 某一列 $NF 最后一列
实例演示
# 实例参考
[root@localhost wangzy]# cat test.txt root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin
# 获取第5列 [root@localhost wangzy]# cat test.txt |awk -F ":" '{print $5}' root bin daemon adm
# 添加参数 [root@localhost wangzy]# cat test.txt |awk -F ":" '{print $1"=>"$2}' root=>x bin=>x daemon=>x adm=>x [root@localhost wangzy]#
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统