忘记密码   免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 1319 | 回复: 2

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

论坛徽章:
3
15-16赛季CBA联赛之青岛
日期:2018-07-09 14:17:2815-16赛季CBA联赛之八一
日期:2018-08-06 15:30:0515-16赛季CBA联赛之广东
日期:2018-08-09 09:11:21
发表于 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
发表于 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 区, 打印到了模式区 。

论坛徽章:
19
程序设计版块每日发帖之星
日期:2016-05-03 06:20:0015-16赛季CBA联赛之山西
日期:2018-08-07 19:46:2315-16赛季CBA联赛之佛山
日期:2018-08-03 13:19:33黑曼巴
日期:2018-07-06 15:19:5015-16赛季CBA联赛之八一
日期:2018-07-05 10:34:0915-16赛季CBA联赛之八一
日期:2018-07-03 16:56:4615-16赛季CBA联赛之深圳
日期:2018-06-15 14:59:3715-16赛季CBA联赛之青岛
日期:2018-06-08 13:45:2815-16赛季CBA联赛之同曦
日期:2018-06-04 19:42:2015-16赛季CBA联赛之山东
日期:2018-05-30 12:44:59CU十四周年纪念徽章
日期:2018-05-15 11:36:3815-16赛季CBA联赛之广东
日期:2018-05-14 09:52:42
发表于 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号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:wangnan@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP