免费注册 查看新帖 |

Chinaunix

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

请问如何在awk中剔除变量的空格? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-09-02 14:16 |只看该作者 |倒序浏览
请问如何在awk中剔除变量的空格?

文件格式 temp.dat
1361235698 Y2Y3  10        23        42        232       423
1361235698 Y2Y3  10        23        42        232       423

我想把他转换成 temp1.dat
1361235698,Y2Y3,10,23,42,232,423
1361235698,Y2Y3,10,23,42,232,423

自己用的awk
awk '{
    SVCO             = substr($0,1,11);
    CCT               = substr($0,12,17);
    CALLC           = substr($0,18,27);
    CAONMIN      = substr($0,28,37);
    CAEC            = substr($0,38,47);
    FEE              = substr($0,48,57);
    FREE            = substr($0,58,67);
    print SVCNO;
}' temp.dat
问题是 CCT 之类的变量格式为 字符加几个空格,如何去掉这些空格?

论坛徽章:
0
2 [报告]
发表于 2004-09-02 14:24 |只看该作者

请问如何在awk中剔除变量的空格?

awk  '{for(i=1;i<NF;i++) printf $i",";printf $NF"\n"}' filename

或者(要求尾部没有空格)
awk '{gsub(/ +/,",";print }' filename

论坛徽章:
0
3 [报告]
发表于 2004-09-02 14:25 |只看该作者

请问如何在awk中剔除变量的空格?

  1. awk '{gsub(/([ ])+/);",");print}' file
复制代码

论坛徽章:
0
4 [报告]
发表于 2004-09-02 14:40 |只看该作者

请问如何在awk中剔除变量的空格?

不好意思,没有说清除格式,我贴的时候是有空格的,但在帖子里面就合并了!

一行中的字段是定长的,所以在代码中必须用 substr截断,然后再剔除变量中的空格!

论坛徽章:
0
5 [报告]
发表于 2004-09-02 15:09 |只看该作者

请问如何在awk中剔除变量的空格?

文件转换要那么麻烦吗?
sed -e 's/. /,/g' -e 's/,$//' temp.dat>temp1.dat

论坛徽章:
0
6 [报告]
发表于 2004-09-02 15:21 |只看该作者

请问如何在awk中剔除变量的空格?

是定长的字段!

问题解决:
用     gsub(/ /,"",SVCO ); 匹配一下就可以了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP