免费注册 查看新帖 |

Chinaunix

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

[文本处理] 如何只替换第一个分隔符 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-01-10 14:46 |只看该作者 |倒序浏览
比如文件如下以空格作为分隔符
1 you are a goog man
2 you
3 are a

只想把第一个分隔符替换,因为都以空格作为分隔符的话,后面的都给我分割了
想把它换成
1---you are a good man
2---you
3---you a
这种形式,以方便我后面在java中处理数据
各位大神有什么好的方法么?我已经用java实现了一种,只是想知道Linux下面有没有相应的简单的命令

论坛徽章:
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
2 [报告]
发表于 2015-01-10 14:47 |只看该作者
回复 1# keedor


    try:
  1. sed 's/ \+/---/;' urfile
复制代码

论坛徽章:
0
3 [报告]
发表于 2015-01-10 15:13 |只看该作者
非常感谢,测了一下可行
明白sed的用法,以及s/的意思,但为啥只替换了第一个,后面的没替换呢?能方便说明一下么?谢谢啦
回复 2# blackold


   

论坛徽章:
10
天蝎座
日期:2013-09-22 22:32:23程序设计版块每日发帖之星
日期:2016-08-07 06:20:00lufei
日期:2016-06-17 17:38:40程序设计版块每日发帖之星
日期:2016-06-12 06:20:002016科比退役纪念章
日期:2016-05-31 15:47:20CU十四周年纪念徽章
日期:2016-05-27 12:24:562015年亚洲杯之阿曼
日期:2015-05-03 21:01:352015年辞旧岁徽章
日期:2015-03-03 16:54:15天蝎座
日期:2013-10-20 21:05:24程序设计版块每日发帖之星
日期:2016-08-11 06:20:00
4 [报告]
发表于 2015-01-10 15:27 |只看该作者
回复 3# keedor


    那是因为你还不明白,s只替换一次,s///g,这样替换全部

论坛徽章:
0
5 [报告]
发表于 2015-01-10 16:49 |只看该作者
哦,非常感谢,忘了之前看到的用法后面都加了个g的
回复 4# liion631818


   

论坛徽章:
8
戌狗
日期:2013-10-12 11:37:19双子座
日期:2014-05-06 14:40:39巨蟹座
日期:2014-06-14 09:22:18戌狗
日期:2014-09-18 16:05:44巨蟹座
日期:2014-12-27 16:37:26酉鸡
日期:2015-01-20 18:39:022015年亚洲杯之沙特阿拉伯
日期:2015-04-20 22:38:242015亚冠之萨济拖拉机
日期:2015-06-19 16:01:03
6 [报告]
发表于 2015-01-10 16:58 |只看该作者
sed 's/ /---/'  test.txt
1---you are a goog man
2---you
3---are a

论坛徽章:
8
戌狗
日期:2013-10-12 11:37:19双子座
日期:2014-05-06 14:40:39巨蟹座
日期:2014-06-14 09:22:18戌狗
日期:2014-09-18 16:05:44巨蟹座
日期:2014-12-27 16:37:26酉鸡
日期:2015-01-20 18:39:022015年亚洲杯之沙特阿拉伯
日期:2015-04-20 22:38:242015亚冠之萨济拖拉机
日期:2015-06-19 16:01:03
7 [报告]
发表于 2015-01-10 17:02 |只看该作者
后面的; 有特殊含义么,黑哥
回复 2# blackold


   

论坛徽章:
10
天蝎座
日期:2013-09-22 22:32:23程序设计版块每日发帖之星
日期:2016-08-07 06:20:00lufei
日期:2016-06-17 17:38:40程序设计版块每日发帖之星
日期:2016-06-12 06:20:002016科比退役纪念章
日期:2016-05-31 15:47:20CU十四周年纪念徽章
日期:2016-05-27 12:24:562015年亚洲杯之阿曼
日期:2015-05-03 21:01:352015年辞旧岁徽章
日期:2015-03-03 16:54:15天蝎座
日期:2013-10-20 21:05:24程序设计版块每日发帖之星
日期:2016-08-11 06:20:00
8 [报告]
发表于 2015-01-10 17:17 |只看该作者
prcardin 发表于 2015-01-10 17:03
后面的; 有特殊含义么,黑哥
回复 2# blackold


跟c里一样

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
9 [报告]
发表于 2015-01-10 18:39 |只看该作者
  1. $ cat s.rb
  2. f=File.open('infile').read

  3. f.each_line do |line|
  4.    puts line.sub(/ /,"---")
  5. end

  6. $ ruby s.rb
  7. 1---you are a goog man
  8. 2---you
  9. 3---are a
复制代码

论坛徽章:
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
10 [报告]
发表于 2015-01-10 21:49 |只看该作者
回复 7# prcardin


    分隔符。没有特殊含义,只是习惯了这样写而已。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP