免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2460 | 回复: 2
打印 上一主题 下一主题

[文本处理] awk的getline问题 [复制链接]

论坛徽章:
4
15-16赛季CBA联赛之青岛
日期:2018-07-09 14:17:2815-16赛季CBA联赛之八一
日期:2018-08-06 15:30:0515-16赛季CBA联赛之广东
日期:2018-08-09 09:11:2115-16赛季CBA联赛之佛山
日期:2019-02-14 09:26:31
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2018-05-11 20:23 |只看该作者 |倒序浏览
[root@bd69 ~]# cat b.txt
2
4
6
8
10

[root@bd69 ~]# awk 'BEGIN{while(getline<"b.txt")print}'
2
4
6
8
10


[root@bd69 ~]# seq 6 | awk '{getline;print}'
2
4
6


[root@bd69 ~]# seq 6 | awk '{print;getline}'
1
3
5



请问 awk 的 getline 为什么在读文件的时候不会跳行,为什么 getline;print 会跳行?,位置改变 结果也不同,为什么?




论坛徽章:
6
程序设计版块每日发帖之星
日期:2016-05-11 06:20:00操作系统版块每日发帖之星
日期:2016-05-12 06:20:00每日论坛发贴之星
日期:2016-05-12 06:20:00操作系统版块每日发帖之星
日期:2016-05-14 06:20:00程序设计版块每日发帖之星
日期:2016-05-31 06:20:00每日论坛发贴之星
日期:2016-05-31 06:20:00
2 [报告]
发表于 2018-05-11 20:52 |只看该作者
本帖最后由 1cpuer 于 2018-05-11 21:25 编辑

回复 1# christmas1102

条件
<"b.txt" 条件
getline;print 会跳行
seq 6 | sed -n 'n;p'
2
4
6
两个意思是差不多的
sed n 读取下一个输入行到模式空间
sed -n 打印不可视字符
getline 获得 行 ->
读取下一个输入行
seq 6 | sed 'n;g;p'   
1


3


5

sed g 取出缓存空间

echo "core--i8"
core--i8
光标到 ^e-to-"$ 鼠标右键 ->鼠标左键 ->复制  ->粘帖
复制到了缓存区,粘帖到了 job 区, 打印到了模式区 。

论坛徽章:
25
程序设计版块每日发帖之星
日期:2016-05-03 06:20:0015-16赛季CBA联赛之八一
日期:2018-07-05 10:34:09黑曼巴
日期:2018-07-06 15:19:5015-16赛季CBA联赛之佛山
日期:2018-08-03 13:19:3315-16赛季CBA联赛之山西
日期:2018-08-07 19:46:2315-16赛季CBA联赛之广夏
日期:2018-08-08 19:31:5015-16赛季CBA联赛之青岛
日期:2018-11-26 15:21:5015-16赛季CBA联赛之上海
日期:2018-12-11 09:45:3219周年集字徽章-年
日期:2020-04-18 23:54:5215-16赛季CBA联赛之深圳
日期:2020-04-19 21:40:19黑曼巴
日期:2022-04-03 17:55:1315-16赛季CBA联赛之八一
日期:2018-07-03 16:56:46
3 [报告]
发表于 2018-05-12 20:06 |只看该作者
回复 1# christmas1102


请问 awk 的 getline 为什么在读文件的时候不会跳行

getline在while循环中逐行读取文件
为什么 getline;print 会跳行?

awk首先读取第1行到模式空间,然后执行getline指令读取第2行到模式空间,最后执行print指令打印第2行
位置改变 结果也不同,为什么?

awk按顺序执行指令,位置改变结果当然不同了。awk首先读取第1行到模式空间,然后执行print指令打印第1行,最后执行getline指令读取第2行到模式空间
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP