免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123
最近访问板块 发新帖
楼主: z_2123
打印 上一主题 下一主题

[文本处理] 新人求解while问题 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2014-07-27 23:07 |只看该作者
回复 20# yestreenstars


    ) 又来麻烦了,还是之前的那个问题,就是文件部分修复后,把整个文件打印出来,用awk操作。随便能讲讲思路么。谢谢哈!

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
22 [报告]
发表于 2014-07-27 23:16 |只看该作者
回复 21# z_2123

啥意思?
   

论坛徽章:
0
23 [报告]
发表于 2014-07-27 23:22 |只看该作者
回复 22# yestreenstars


    就还是16楼的那个问题。只不过是用awk

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
24 [报告]
发表于 2014-07-27 23:35 |只看该作者
回复 23# z_2123
  1. $ cat i
  2. A B C D E
  3. H I J
  4. K M
  5. L N O P Q
  6. m f q g
  7. k
  8. r q r t h
  9. $ awk 'NF<5{printf $0;getline}1' i
  10. A B C D E
  11. H I J K M
  12. L N O P Q
  13. m f q g k
  14. r q r t h
复制代码
这样吗?
   

论坛徽章:
0
25 [报告]
发表于 2014-07-27 23:39 |只看该作者
回复 24# yestreenstars


    嗯嗯,是这样的。。awk 'NF<5{printf $0;getline}1' 这里这1是什么意思啊。还有如果不用getline函数,怎么实现呢?

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
26 [报告]
发表于 2014-07-27 23:55 |只看该作者
回复 25# z_2123

1的解释看这里~

好好的getline不用?
  1. awk 'NF<5{k=1}k{s=s$0;$0=s;if(NF==5){print s;s=k=""}next}1'
复制代码

论坛徽章:
0
27 [报告]
发表于 2014-07-28 00:33 |只看该作者
回复 26# yestreenstars


    还有个疑问,awk'NF<5{print $0;getline}1'  始终理解不了,明明前提是NF<5,=5打印出来是这么实现的呢?这awk代码{}里面有优先级的判断么?

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
28 [报告]
发表于 2014-07-28 09:02 |只看该作者
回复 27# z_2123

等你理解了1的作用后大概就懂了
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP