免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2462 | 回复: 15

[文本处理] 【求救】如何按行尾的字符条件合并上下行 [复制链接]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2015-03-04 00:51 |显示全部楼层
联系电话
022-52229808
组织地址
天津市南开区578号;
天津西区光华街58号
机构名称
XXXXXXXX
批准号
CNCA-R-2002-039
有效期
2018-12-10

请问如何合并 带;的地址那两行? 遇到行尾是;或。就合并上下行有可能是一个行尾是;也有可能2个行尾是;

论坛徽章:
0
发表于 2015-03-04 08:45 |显示全部楼层
本帖最后由 54nwq 于 2015-03-04 08:46 编辑

awk '{if(/;$|。$/){printf"%s ",$0}else{print $0}}'

求职 : 机器学习
论坛徽章:
79
2015年亚洲杯纪念徽章
日期:2015-05-06 19:18:572015七夕节徽章
日期:2015-08-21 11:06:172015亚冠之阿尔纳斯尔
日期:2015-09-07 09:30:232015亚冠之萨济拖拉机
日期:2015-10-21 08:26:3915-16赛季CBA联赛之浙江
日期:2015-12-30 09:59:1815-16赛季CBA联赛之浙江
日期:2016-01-10 12:35:21技术图书徽章
日期:2016-01-15 11:07:2015-16赛季CBA联赛之新疆
日期:2016-02-24 13:46:0215-16赛季CBA联赛之吉林
日期:2016-06-26 01:07:172015-2016NBA季后赛纪念章
日期:2016-06-28 17:44:45黑曼巴
日期:2016-06-28 17:44:4515-16赛季CBA联赛之浙江
日期:2017-07-18 13:41:54
发表于 2015-03-04 08:48 |显示全部楼层
本帖最后由 zsszss0000 于 2015-03-04 08:50 编辑
  1. sed '/\;/{N;s/\n//gp}' urfile
复制代码
不对,我这个只是合并上面地支行以;结尾的。

论坛徽章:
0
发表于 2015-03-04 08:57 |显示全部楼层
回复 3# zsszss0000

sed '/;/,/。/{N;s/\n//g}'

求职 : 机器学习
论坛徽章:
79
2015年亚洲杯纪念徽章
日期:2015-05-06 19:18:572015七夕节徽章
日期:2015-08-21 11:06:172015亚冠之阿尔纳斯尔
日期:2015-09-07 09:30:232015亚冠之萨济拖拉机
日期:2015-10-21 08:26:3915-16赛季CBA联赛之浙江
日期:2015-12-30 09:59:1815-16赛季CBA联赛之浙江
日期:2016-01-10 12:35:21技术图书徽章
日期:2016-01-15 11:07:2015-16赛季CBA联赛之新疆
日期:2016-02-24 13:46:0215-16赛季CBA联赛之吉林
日期:2016-06-26 01:07:172015-2016NBA季后赛纪念章
日期:2016-06-28 17:44:45黑曼巴
日期:2016-06-28 17:44:4515-16赛季CBA联赛之浙江
日期:2017-07-18 13:41:54
发表于 2015-03-04 09:00 |显示全部楼层
LZ的需求写的不是很清楚,我觉得他的意思是说有可能地址的第二行以;结尾回复 4# 54nwq


   

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
发表于 2015-03-04 09:07 |显示全部楼层
没有描述清楚吧。

论坛徽章:
0
发表于 2015-03-04 09:08 |显示全部楼层
回复 5# zsszss0000


看楼主的文本内容,觉得他是要这样

标题
内容
标题
内容;内容
标题
内容;内容
标题
内容

即:同一标题下有多个内容的,合成一行

求职 : 机器学习
论坛徽章:
79
2015年亚洲杯纪念徽章
日期:2015-05-06 19:18:572015七夕节徽章
日期:2015-08-21 11:06:172015亚冠之阿尔纳斯尔
日期:2015-09-07 09:30:232015亚冠之萨济拖拉机
日期:2015-10-21 08:26:3915-16赛季CBA联赛之浙江
日期:2015-12-30 09:59:1815-16赛季CBA联赛之浙江
日期:2016-01-10 12:35:21技术图书徽章
日期:2016-01-15 11:07:2015-16赛季CBA联赛之新疆
日期:2016-02-24 13:46:0215-16赛季CBA联赛之吉林
日期:2016-06-26 01:07:172015-2016NBA季后赛纪念章
日期:2016-06-28 17:44:45黑曼巴
日期:2016-06-28 17:44:4515-16赛季CBA联赛之浙江
日期:2017-07-18 13:41:54
发表于 2015-03-04 09:08 |显示全部楼层
楼主这句需求感觉不是很明确,重新写一下
itpark 发表于 2015-03-04 00:51
联系电话
022-52229808
组织地址

论坛徽章:
0
发表于 2015-03-04 09:25 |显示全部楼层
本帖最后由 54nwq 于 2015-03-04 09:26 编辑

比如可能出现如下情况
  1. 联系电话
  2. 022-52229808
  3. 组织地址
  4. 天津市南开区578号;
  5. 天津西区光华街58号;
  6. 天津西区光华街59号;
  7. 天津西区光华街60号;
  8. 天津西区光华街66号;
  9. 天津西区光华街68号
  10. 机构名称
  11. XXXXXXXX。
  12. YYYYYYYY。
  13. ZZZZZZZZ
  14. 批准号
  15. CNCA-R-2002-039
  16. 有效期;
  17. 2018-12-10
复制代码

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2015-03-04 10:29 |显示全部楼层
54nwq 发表于 2015-03-04 09:08
回复 5# zsszss0000



@54nwq  感谢大牛。 两种方法都正确输出结果

awk '{if(/;$|。$/){printf"%s ",$0}else{print $0}}'

sed '/;/,/。/{N;s/\n//g}'




原始内容:


联系电话
022-52229808
组织地址
天津市南开区578号;
天津西区光华街58号
机构名称
XXXXXXXX
批准号
CNCA-R-2002-039
有效期
2018-12-10


输出内容:


联系电话
022-52229808
组织地址
天津市南开区578号;天津西区光华街58号
机构名称
XXXXXXXX
批准号
CNCA-R-2002-039
有效期
2018-12-10
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP