找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 17730|回复: 3

[问题求助] gawk命令怎么连接连续的行(有条件限制)?

[复制链接]
发表于 2012-5-26 22:57:00 | 显示全部楼层 |阅读模式
文本:

  1. DA,'11',0,'20010304174633',0,
  2. *  'D:\TRUMPF\TEILE\USER1\HALTER.GEO',5,'HALTER',0.00,
  3. *  15176.64,'',1,'Halter',1
  4. DA,'11',0,'20010304174811',0,'D:\TRUMPF\TEILE\USER1\MM.GEO',
  5. *  5,'MM',0.00,171148.46,'',2,'MM',1
  6. DA,'JY_184_088_08',0,'',0,
  7. *  'E:\冲床编程\H-汉威-184\20120500088控制柜\冲床下料\SPCC 2.0\JY-184-08',
  8. -  '8-08.GMT',1,'JY-184-088-08',0.00,1364418.41,'','1','',1871.000,
  9. *  738.578,1
  10. DA,'JY_184_088_10',0,'',0,
  11. *  'E:\冲床编程\H-汉威-184\20120500088控制柜\冲床下料\SPCC 1.5\JY-184-08',
  12. -  '8-10.GMT',3,'JY-184-088-10',0.00,132513.53,'','1','',700.000,190.800,1
复制代码
想要的格式是这样的:

  1. DA,'11',0,'20010304174633',0,*  'D:\TRUMPF\TEILE\USER1\HALTER.GEO',5,'HALTER',0.00,*  15176.64,'',1,'Halter',1
  2. DA,'11',0,'20010304174811',0,'D:\TRUMPF\TEILE\USER1\MM.GEO',*  5,'MM',0.00,171148.46,'',2,'MM',1
  3. DA,'JY_184_088_08',0,'',0,*  'E:\冲床编程\H-汉威-184\20120500088控制柜\冲床下料\SPCC 2.0\JY-184-08',-  '8-08.GMT',1,'JY-184-088-08',0.00,1364418.41,'','1','',1871.000,*  738.578,1
  4. DA,'JY_184_088_10',0,'',0,*  'E:\冲床编程\H-汉威-184\20120500088控制柜\冲床下料\SPCC 1.5\JY-184-08',-  '8-10.GMT',3,'JY-184-088-10',0.00,132513.53,'','1','',700.000,190.800,1
复制代码
也就是条件是:
如果行的开头包含*或-这两种任意一种字符,就把该行跟它的上一行连接起来成为一行;反之,就另起一行,但是接下去的行是否连接成一行还是根据这个条件。

本人看了awk一些教程,但由于工作原因,没能亲身实践,只停留在看,虽然能看懂复杂一点的例子,但自己遇到实际问题自己就搞不定了,唉~求指导!


我自己是这样写的:

  1. gawk "{x=$0;getline;while ($0~/^*/||$0~/^-/){x=x$0;getline};print x}" 1.txt
复制代码
但是不成功。
发表于 2012-5-27 08:47:23 | 显示全部楼层
  1. gawk "{if(NR>1 && $0~/^DA,/)print ""; printf $0}" a.txt >b.txt
复制代码
 楼主| 发表于 2012-5-27 13:17:49 | 显示全部楼层
回复 2# gawk


    谢谢回复,但是遇到-开头的就不行了,能再改改吗?
发表于 2012-5-27 13:35:18 | 显示全部楼层
回复 3# JooKin


    请把你的测试数据和测试解决贴出来看看
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 00:49 , Processed in 0.010018 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表