免费注册 查看新帖 |

Chinaunix

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

[文本处理] 比较上下行$2,如果不同在上一行与下一行之间打一空行 [复制链接]

论坛徽章:
2
卯兔
日期:2014-05-29 15:26:02CU十四周年纪念徽章
日期:2016-05-25 17:08:31
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-05-29 15:16 |只看该作者 |倒序浏览
需求:比较上下行$2,如果上下行中的$2不同,那么在上一行与下一行之间打一空行。
例子:cat aaa.txt
1,abcd,123
2,abcd,234
3,abcd,1234
4,abcd,221
5,efg,123
6,efg,234
7,abcd,1234

预期结果应如下:
cat aaa.txt
1,abcd,123
2,abcd,234
3,abcd,1234
4,abcd,221

5,efg,123
6,efg,234

7,abcd,1234

感谢各位帮助。

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
2 [报告]
发表于 2014-05-29 15:25 |只看该作者
回复 1# ymjewfn

$ awk -F, 'P!=$2&&P!=""{print ""}{P=$2}1' aaa.txt
1,abcd,123
2,abcd,234
3,abcd,1234
4,abcd,221

5,efg,123
6,efg,234

7,abcd,1234

   

论坛徽章:
2
卯兔
日期:2014-05-29 15:26:02CU十四周年纪念徽章
日期:2016-05-25 17:08:31
3 [报告]
发表于 2014-05-29 15:27 |只看该作者
非常非常感谢, 成功运行。回复 2# jason680


   

论坛徽章:
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
4 [报告]
发表于 2014-05-29 17:04 |只看该作者
  1. awk -F, 't!=""&&t!=$2{print ""}{t=$2}1'
复制代码

论坛徽章:
1
摩羯座
日期:2014-11-14 16:48:17
5 [报告]
发表于 2014-05-30 23:43 |只看该作者
回复 4# yestreenstars
LZ,你的这条命令awk -F, 't!=""&&t!=$2{print ""}{t=$2}1',没有看明白,那能否说明你的处理逻辑是什么?


   

论坛徽章:
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
6 [报告]
发表于 2014-05-30 23:54 |只看该作者
回复 5# fantingftt123
从第二行开始,比较第二列和上一行的第一列是否相等,如果不等,就打印一个空行。{:2_172:}

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP