免费注册 查看新帖 |

Chinaunix

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

如何替换数据中的空格分隔符 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-06 22:56 |只看该作者 |倒序浏览
现有数据,每一行中各个段间的分隔为多个空格,如下
  AAB    BB    CCC
      A2B    CB    ABC
如何实现,转换成下面的格式
AAB|BB|CCC|
A2B|CB|ABC|

请各位路过的朋友指招,感谢!

论坛徽章:
0
2 [报告]
发表于 2008-07-06 23:32 |只看该作者
sed -e 's/[ ]+/\|/g' ufile
awk 'BEGIN{OFS="|"} {$1=$1;print}' urfile

论坛徽章:
0
3 [报告]
发表于 2008-07-06 23:37 |只看该作者
sed 's/\s\+\|$/|/g'

论坛徽章:
0
4 [报告]
发表于 2008-07-06 23:38 |只看该作者
awk '{print $1"|"$2"|"$3"|"}'
我的awk果然不熟练啊,这么简单的东西弄了这么久。

[ 本帖最后由 walkerxk 于 2008-7-6 23:45 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2008-07-06 23:39 |只看该作者
原帖由 mystérieux 于 2008-7-6 23:37 发表
sed 's/\s\+\|$/|/g'

这样的话还要把头尾的去掉。

论坛徽章:
0
6 [报告]
发表于 2008-07-06 23:41 |只看该作者
sed 's/[[:blank:]]\+/|/g' test

论坛徽章:
0
7 [报告]
发表于 2008-07-06 23:43 |只看该作者
原帖由 walkerxk 于 2008-7-6 23:39 发表

这样的话还要把头尾的去掉。


他是要尾不要头,我的该怎么改?

论坛徽章:
0
8 [报告]
发表于 2008-07-06 23:44 |只看该作者
二楼的sed也没用,用sed的话要三步:sed 's/^ \+//;s/ \+/|/g;s/ *$/|/;'

[ 本帖最后由 walkerxk 于 2008-7-6 23:46 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2008-07-06 23:44 |只看该作者
awk 'BEGIN{OFS="|"} {$1=$1;print}' urfile
二楼的兄弟能解释下$1=$1吗?

论坛徽章:
0
10 [报告]
发表于 2008-07-06 23:47 |只看该作者
不好意思,没看清楚,尾巴加上了。二楼的awk也没有加上尾巴吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP