免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: onlyabug
打印 上一主题 下一主题

用sed把两列之间的不管有多少空格都替换为一个空格怎么写?  关闭 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2003-09-26 18:03 |只看该作者

用sed把两列之间的不管有多少空格都替换为一个空格怎么写?


  1. $cat tmp1
  2. sdf sdf       dfd   dfd          dfdfd
  3. dfd   erer     erer er r r erer  r 234 3         345 34          345 54
  4. sd  ds                                           werwe     wer  wer r r r  r
  5. $cat tmp1|sed 's/[ ]*[ ]/ /g'
  6. sdf sdf dfd dfd dfdfd
  7. dfd erer erer er r r erer r 234 3 345 34 345 54
  8. sd ds werwe wer wer r r r r
复制代码

论坛徽章:
0
12 [报告]
发表于 2003-09-26 18:20 |只看该作者

用sed把两列之间的不管有多少空格都替换为一个空格怎么写?

想不明白?为什么偏偏要用sed
  1. while read line;do echo $line ;done<urfile
复制代码
   
效果跟tr -s ' '和用sed的一样!

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
13 [报告]
发表于 2003-09-26 18:22 |只看该作者

用sed把两列之间的不管有多少空格都替换为一个空格怎么写?

原帖由 "bjgirl" 发表:
   
效果跟tr -s ' '和用sed的一样!
   
处理此类问题sed的效率最好!

论坛徽章:
0
14 [报告]
发表于 2003-09-26 18:25 |只看该作者

用sed把两列之间的不管有多少空格都替换为一个空格怎么写?

原帖由 "admirer" 发表:
   
处理此类问题sed的效率最好!
   
如果遇到TAB呢?! 不是很麻烦吗?!
  1. while read line;do echo $line ;done<urfile
复制代码
连TAB都解决成一个空格啦~~ ....
(解决问题,不能一棵树上吊死的嘛~~)

论坛徽章:
0
15 [报告]
发表于 2003-09-26 18:27 |只看该作者

用sed把两列之间的不管有多少空格都替换为一个空格怎么写?

原帖由 "admirer" 发表:
   
处理此类问题sed的效率最好!
   
嘻嘻~~,如果从效率上说,外部命令越少越好!因为占用的资源越少呀~~~
(我对sed不熟悉的嘛,所以才这样说.....)

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
16 [报告]
发表于 2003-09-26 19:03 |只看该作者

用sed把两列之间的不管有多少空格都替换为一个空格怎么写?

原帖由 "bjgirl" 发表:
如果遇到TAB呢?! 不是很麻烦吗?!
而:
  1. while read line;do echo $line ;done<urfile
复制代码

连TAB都解决成一个空格啦~~ ....

MM总有一些突发奇想!
匹配什么主要是合理使用正则表达式(或通配符)的问题:
如果考虑空格和tab同时存在的情况,应该这样写:
  1. sed '/[[:blank:]]\{2,\}/ /g'
复制代码

论坛徽章:
0
17 [报告]
发表于 2003-09-27 09:04 |只看该作者

用sed把两列之间的不管有多少空格都替换为一个空格怎么写?

[quote]原帖由 "admirer"][/quote 发表:
     

颗我试验这个命令无效,空格和tab混合的还是保持原样没有动。

论坛徽章:
0
18 [报告]
发表于 2003-09-27 09:25 |只看该作者

用sed把两列之间的不管有多少空格都替换为一个空格怎么写?

[quote]原帖由 "admirer"]cat file | sed 's/ \{2,\}/ /g'  [/quote 发表:
     

好,多谢指正

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
19 [报告]
发表于 2003-09-27 09:40 |只看该作者

用sed把两列之间的不管有多少空格都替换为一个空格怎么写?

原帖由 "onlyabug" 发表:
   

颗我试验这个命令无效,空格和tab混合的还是保持原样没有动。

噢,少了一个s
sed 's/[[]]\{2,\}/ /g'     
  1. cat  file
  2. 2010-sm 4-1       -mul.xml
  3. 2010-sm 4-1       -mul.xml
  4. 2012-sm 4-3       -mul.xml
  5. 2010-sm 4-1-mul           .xml
  6. 2010-sm 4-1-mul           .xml
  7. 2012-sm 4-3-mul           .xml
复制代码

测试(SCOUNIX 5.0.5)
  1. sed 's/[[:blank:]]\{2,\}/ /g' file
  2. 2010-smsc4-1 -mul.xml
  3. 2010-smsc4-1 -mul.xml
  4. 2012-smsc4-3 -mul.xml
  5. 2010-smsc4-1-mul .xml
  6. 2010-smsc4-1-mul .xml
  7. 2012-smsc4-3-mul .xml

  8. or

  9. sed 's/[[:space:]]\{2,\}/ /g'
  10. 2010-smsc4-1 -mul.xml
  11. 2010-smsc4-1 -mul.xml
  12. 2012-smsc4-3 -mul.xml
  13. 2010-smsc4-1-mul .xml
  14. 2010-smsc4-1-mul .xml
  15. 2012-smsc4-3-mul .xml
复制代码

论坛徽章:
0
20 [报告]
发表于 2003-09-27 11:09 |只看该作者

用sed把两列之间的不管有多少空格都替换为一个空格怎么写?

呵呵,我做的时候当然加了s,但是在solaris8上执行输出的结果原文件没有任何改动
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP