免费注册 查看新帖 |

Chinaunix

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

[文本处理] 替换指定字符的逗号 [复制链接]

论坛徽章:
1
2015亚冠之鹿岛鹿角
日期:2015-06-30 14:53:49
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-01-29 13:09 |只看该作者 |倒序浏览
本帖最后由 eatmyshort 于 2016-01-29 13:16 编辑

文本实例:
15396763,1539676,20e5501e6e60cf4515,3,应用偏好|音乐,应用偏好|视频|优酷,应用偏好|游戏|腾讯,6
18136636,1813663,e79b48cc3edb337b55,3,应用偏好|游戏|腾讯,应用偏好|视频,应用偏好|游戏,8
15358930,1535893,d6e26e7581c31d5a6f,0,2,30
17768456,1776845,79d50f42f6a90978d7,0,2,68
18018061,1801806,c0c70fc290dfedbd4c,3,应用偏好|音乐,应用偏好|游戏,应用偏好|视频|优酷,48
15370353,1537035,1e131f0e112a885d77,3,应用偏好|音乐,应用偏好|视频|优酷,应用偏好|游戏|腾讯,7
13390712,1339071,32a5f245869b9be076,3,应用偏好|游戏|腾讯,应用偏好|视频|优酷,应用偏好|音乐|QQ音乐,9
13327931,1332793,1c334da99c56be9ad2,3,应用偏好|音乐,应用偏好|视频,应用偏好|游戏|腾讯,7
18112916,1811291,81895f87362ab31338,3,应用偏好|视频,应用偏好|游戏,应用偏好|游戏|腾讯,73
18013604,1801360,9b35b571b6d25a78a7,3,娱乐偏好|视频,应用偏好|音乐,应用偏好|游戏,75

想把 类似:娱乐偏好|视频,应用偏好|音乐,应用偏好|游戏    的中文标签内的逗号替换为 ;
例如
18013604,1801360,9b35b571b6d25a78a7,3,娱乐偏好|视频;应用偏好|音乐;应用偏好|游戏,75
18136636,1813663,e79b48cc3edb337b55,3,应用偏好|游戏|腾讯;应用偏好|视频;应用偏好|游戏,8

论坛徽章:
54
2015亚冠之德黑兰石油
日期:2015-07-07 13:00:1615-16赛季CBA联赛之深圳
日期:2016-03-31 09:03:5415-16赛季CBA联赛之辽宁
日期:2016-05-09 20:38:15程序设计版块每日发帖之星
日期:2016-05-12 06:20:0015-16赛季CBA联赛之四川
日期:2016-05-13 15:19:4715-16赛季CBA联赛之福建
日期:2016-05-15 20:24:34每日论坛发贴之星
日期:2016-05-16 06:20:0015-16赛季CBA联赛之吉林
日期:2016-05-26 11:49:4715-16赛季CBA联赛之广东
日期:2016-05-26 13:49:18极客徽章
日期:2016-12-07 14:05:2315-16赛季CBA联赛之广夏
日期:2016-12-20 17:33:532017金鸡报晓
日期:2017-01-10 15:19:56
2 [报告]
发表于 2016-01-29 13:17 |只看该作者
  1. sed -r 's/([^a-zA-Z0-9]),([^a-zA-Z0-9])/\1;\2/g' file
复制代码

评分

参与人数 1信誉积分 +5 收起 理由
eatmyshort + 5 很给力!

查看全部评分

论坛徽章:
1
2015亚冠之鹿岛鹿角
日期:2015-06-30 14:53:49
3 [报告]
发表于 2016-01-29 13:26 |只看该作者
hao神:刚才思路是判断是否为中文来解决问题。请问如果是 类似标签是英文的怎么做啊
例如:18013604,1801360,9b35b571b6d25a78a7,3,addr|beijing,name|tom,age|24,75

想改为
18013604,1801360,9b35b571b6d25a78a7,3,addr|beijing;name|tom;age|24,75

回复 2# haooooaaa


   

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
4 [报告]
发表于 2016-01-29 13:30 |只看该作者
回复 3# eatmyshort
  1. sed ':a;s/\(|[^|]*\),/\1;/;ta' file
复制代码

论坛徽章:
54
2015亚冠之德黑兰石油
日期:2015-07-07 13:00:1615-16赛季CBA联赛之深圳
日期:2016-03-31 09:03:5415-16赛季CBA联赛之辽宁
日期:2016-05-09 20:38:15程序设计版块每日发帖之星
日期:2016-05-12 06:20:0015-16赛季CBA联赛之四川
日期:2016-05-13 15:19:4715-16赛季CBA联赛之福建
日期:2016-05-15 20:24:34每日论坛发贴之星
日期:2016-05-16 06:20:0015-16赛季CBA联赛之吉林
日期:2016-05-26 11:49:4715-16赛季CBA联赛之广东
日期:2016-05-26 13:49:18极客徽章
日期:2016-12-07 14:05:2315-16赛季CBA联赛之广夏
日期:2016-12-20 17:33:532017金鸡报晓
日期:2017-01-10 15:19:56
5 [报告]
发表于 2016-01-29 13:33 |只看该作者
回复 3# eatmyshort
  1. awk -F\| '{OFS=FS;for(i=2;i<NF;i++)sub(",",";",$i);}1' file
复制代码

论坛徽章:
1
2015亚冠之鹿岛鹿角
日期:2015-06-30 14:53:49
6 [报告]
发表于 2016-01-29 13:44 |只看该作者
这个可以,谢谢了
回复 5# haooooaaa


   

论坛徽章:
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
7 [报告]
发表于 2016-01-29 14:07 |只看该作者
回复 1# eatmyshort

$ awk 'BEGIN{FS=OFS="|"}{for(n=2;n<NF;++n)gsub(/,/,";",$n);print}' FILE
15396763,1539676,20e5501e6e60cf4515,3,应用偏好|音乐;应用偏好|视频|优酷;应用偏好|游戏|腾讯,6
18136636,1813663,e79b48cc3edb337b55,3,应用偏好|游戏|腾讯;应用偏好|视频;应用偏好|游戏,8
15358930,1535893,d6e26e7581c31d5a6f,0,2,30
17768456,1776845,79d50f42f6a90978d7,0,2,68
18018061,1801806,c0c70fc290dfedbd4c,3,应用偏好|音乐;应用偏好|游戏;应用偏好|视频|优酷,48
15370353,1537035,1e131f0e112a885d77,3,应用偏好|音乐;应用偏好|视频|优酷;应用偏好|游戏|腾讯,7
13390712,1339071,32a5f245869b9be076,3,应用偏好|游戏|腾讯;应用偏好|视频|优酷;应用偏好|音乐|QQ音乐,9
13327931,1332793,1c334da99c56be9ad2,3,应用偏好|音乐;应用偏好|视频;应用偏好|游戏|腾讯,7
18112916,1811291,81895f87362ab31338,3,应用偏好|视频;应用偏好|游戏;应用偏好|游戏|腾讯,73
18013604,1801360,9b35b571b6d25a78a7,3,娱乐偏好|视频;应用偏好|音乐;应用偏好|游戏,75
   

评分

参与人数 1信誉积分 +5 收起 理由
eatmyshort + 5 赞一个!

查看全部评分

论坛徽章:
12
程序设计版块每日发帖之星
日期:2016-01-28 06:20:00程序设计版块每周发帖之星
日期:2016-03-07 16:29:28程序设计版块每日发帖之星
日期:2016-02-04 06:20:00程序设计版块每日发帖之星
日期:2016-02-02 06:20:00每周论坛发贴之星
日期:2016-01-31 22:22:00程序设计版块每日发帖之星
日期:2016-02-01 06:20:00程序设计版块每日发帖之星
日期:2016-01-31 06:20:00每日论坛发贴之星
日期:2016-01-30 06:20:00程序设计版块每日发帖之星
日期:2016-01-30 06:20:00每日论坛发贴之星
日期:2016-01-29 06:20:00程序设计版块每日发帖之星
日期:2016-01-29 06:20:0015-16赛季CBA联赛之福建
日期:2016-04-06 14:19:05
8 [报告]
发表于 2016-01-29 14:27 |只看该作者
回复 3# eatmyshort
  1. sed -r 's/([a-zA-Z]),([a-zA-Z])/\1;\2/g' file
复制代码

论坛徽章:
28
15-16赛季CBA联赛之八一
日期:2016-02-22 19:10:4215-16赛季CBA联赛之深圳
日期:2016-12-01 10:34:0415-16赛季CBA联赛之新疆
日期:2016-12-07 10:24:2915-16赛季CBA联赛之同曦
日期:2016-12-15 12:06:43CU十四周年纪念徽章
日期:2016-12-18 13:03:4415-16赛季CBA联赛之吉林
日期:2017-01-03 15:52:2515-16赛季CBA联赛之辽宁
日期:2017-01-04 14:58:2415-16赛季CBA联赛之辽宁
日期:2017-01-15 09:42:512016科比退役纪念章
日期:2017-02-06 17:21:50黑曼巴
日期:2017-02-10 15:46:1215-16赛季CBA联赛之上海
日期:2017-03-18 10:14:5415-16赛季CBA联赛之青岛
日期:2017-03-18 22:00:44
9 [报告]
发表于 2016-01-29 14:56 |只看该作者
本帖最后由 moperyblue 于 2016-01-29 15:03 编辑
  1. LANG=c
  2. sed -r ':a;s/(\W+),(\W+)/\1;\2/;ta' file

  3. locale => 如果不是LANG=c
  4. sed -r ':a;s/(\|[^,]*),(.*\|)/\1;\2/;ta' file
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP