linux 中 awk 中 geline函数的用法及其与next的区别
001、首选测试awk中getline这个动作 做了什么
a、
[root@pc1 test1]# ls a.txt [root@pc1 test1]# cat a.txt ## 测试数据 01 02 03 04 05 06 kk 07 08 09 10 11 12 13 14 [root@pc1 test1]# awk '{if($0 ~ /kk/) {getline} else {print $0}}' a.txt 01 02 ## 输出结果表明,getline动作跳过了匹配行以及匹配行的下一行 03 04 09 10 11 12 13 14
b、连续两个getline动作
[root@pc1 test1]# ls a.txt [root@pc1 test1]# cat a.txt ## 测试数据 01 02 03 04 05 06 kk 07 08 09 10 11 12 13 14 [root@pc1 test1]# awk '{if($0 ~ /kk/) {getline; getline} else {print $0}}' a.txt 01 02 ## getline连续跳过了匹配行及其后的两行 03 04 11 12 13 14
c、getline这个动作做了什么?
跳过当前行以及下一行。
002、与next的区别
a、
[root@pc1 test1]# ls a.txt [root@pc1 test1]# cat a.txt 01 02 ## 测试数据 03 04 05 06 kk 07 08 09 10 11 12 13 14 [root@pc1 test1]# awk '{if($0 ~ /kk/) {next} else {print $0}}' a.txt 01 02 ## 可以观测到next跳过了匹配行 03 04 07 08 09 10 11 12 13 14
b、连续给与两个next
[root@pc1 test1]# ls a.txt [root@pc1 test1]# cat a.txt 01 02 ## 测试数据 03 04 05 06 kk 07 08 09 10 11 12 13 14 [root@pc1 test1]# awk '{if($0 ~ /kk/) {next; next} else {print $0}}' a.txt 01 02 ## 两个next跟一个next的效果相同 03 04 07 08 09 10 11 12 13 14 [root@pc1 test1]# awk '{if($0 ~ /kk/) {next; next; next} else {print $0}}' a.txt 01 02 ## 效应一样 03 04 07 08 09 10 11 12 13 14
c、next的作用
跳过匹配行;而且只对匹配行起作用,不管有多少个next;
003、getline与next的区别
getline跳过匹配行及下一行,并且可以对连续的下一行起作用;
next跳过当前行,且不管有多少个next仅对当前行有作用。
分类:
linux shell
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2021-02-23 python中实现列表倒序排列
2021-02-23 python中如何清空列表
2021-02-23 python中提取列表的奇数元素和偶数元素
2021-02-23 python中如何提取列表的前几个元素和后几个元素