shell文本编辑器:awk用法
awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。
awk语法格式:
awk 命令 '{执行语句}' 文件名
awk 命令 '/正则/{执行语句}' 文件名
awk常用命令:
-F: 指定分隔符。不写就是以一个或多个空格为分隔符。
-v var=value 赋值一个用户定义变量,将外部变量传递给awk
读前处理和读后处理。
BEGIN语句块: 在awk开始从输入流中读取行之前被执行,这是一个可选的语句块,比如变量初始化、打印输出表格的表头等语句通常可以写在BEGIN语句块中。
END语句块: 在awk从输入流中读取完所有的行之后即被执行,比如打印所有行的分析结果这类信息汇总都是在END语句块中完成,它也是一个可选语句块。
awk内置变量:
$n 当前记录的第n个字段,比如n为1表示第一个字段,n为2表示第二个字段。
$0 这个变量包含执行过程中当前行的文本内容。
NF 表示字段数,在执行过程中对应于当前的字段数。
NR 表示记录数,在执行过程中对应于当前的行号。
awk运算和判断。
+ - 加,减
* / & 乘,除与求余
+ - 一元加,减
^ *** 求幂
++ -- 增加或减少,作为前缀或后缀
= += -= 赋值语句
|| 逻辑或
&& 逻辑与
! 逻辑非
< <= > >= != == 关系运算符
awk小例子:
1、
test文件内容为:
root:123:234:345:666
#awd -F: {print $1,$3} test
root 234
表示:以:分割,$1表示分割后的第一部分,同理$3表示第三部分。
2、
#awk -F: 'NR==1{print $1,NR}' test
root 1
NR==1表示只定位第一行,后面输出语句,输出第一部分和行数。
3、
读前处理:
#awk -F: 'BEGIN {print NR,NF}' /etc/passwd
0 0
读后处理:
#awk -F: 'END {print NR,NF}' /etc/passwd
46 7
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· DeepSeek火爆全网,官网宕机?本地部署一个随便玩「LLM探索」
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 上周热点回顾(1.20-1.26)
· 【译】.NET 升级助手现在支持升级到集中式包管理