免费注册 查看新帖 |

Chinaunix

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

[文本处理] 求sed的语句 [复制链接]

论坛徽章:
1
戌狗
日期:2013-10-24 11:22:04
11 [报告]
发表于 2013-07-30 10:00 |只看该作者
大侠啊!我照着你的awk做了,结果我1000行以后的数据,与我想要的结果可差远了去了!
我1000行以后的数据,原始的:
X12     45211076777-2       2245812.51 391 5851076777-2         2240900 22457501
X12     45211076777-2       2245812.51 586 7801076777-2         2245875 22507251
X12     45311076777-2       2245912.51     1 1951076777-1         1241000 12458501
想变成的
X12     452 11076777-2       2245812.5 1 391 585 1076777-2         2240900 2245750 1
X12     452 11076777-2       2245812.5 1 586 780 1076777-2         2245875 2250725 1
X12     453 11076777-2       2245912.5 1     1 195 1076777-1         1241000 1245850 1
结果用了你的就变成了
X12 4 5211076777-2 2245812.51 391 585 1076777-2 2240900 22457501
X12 4 5211076777-2 2245812.51 586 780 1076777-2 2245875 22507251
X12 4 5311076777-2 2245912.51 1 195 1076777-1 1241000 12458501
请教8楼大侠:你能解析一下你的awk语句吗?我想是不是我哪里说错了!
或者哪里还需要变动一下,后面的空格加的是对的,就是第一个空格加的不在地方!头几行都还对的!
还有:最后的数据前还想加个空格!就是原来的79列后加个空格!

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
12 [报告]
发表于 2013-07-30 10:20 |只看该作者
回复 11# 试一试


要确保文件中所有的内容都是一样的宽度(比如都是80个字符,包括空格),格式必须是一致的。   

论坛徽章:
0
13 [报告]
发表于 2013-07-30 10:37 |只看该作者
回复 11# 试一试
X1        511076777-2       2196262.51     1 1951076777-1         1191350 11962001X1        511076777-2       2196262.51 196 3901076777-1         1196325 12011751X1        511076777-2       2196262.51 391 5851076777-2         2191350 21962001原始的数据!我想变成X1        5 11076777-2       2196262.5 1     1 195 1076777-1         1191350 1196200 1X1        5 11076777-2       2196262.5 1 196 390 1076777-1         1196325 1201175 1X1        5 11076777-2       2196262.5 1 391 585 1076777-2         2191350 2196200 1插入空格!

你这不是取第一个吗?你后面怎么是取的头三个?
   

论坛徽章:
0
14 [报告]
发表于 2013-07-30 11:19 |只看该作者

为自己的智商捉急啊,只能用这种笨办法了,坐等犀利哥出现
再试试这个:
  1. awk '{$2=substr($2,1,length($2)-10) FS substr($2,length($2)-9);$5=substr($5,1,length($5)-9) FS substr($5,length($5)-8);$NF=substr($NF,1,length($NF)-1) FS substr($NF,length($NF))}1' bfile2
复制代码

论坛徽章:
1
戌狗
日期:2013-10-24 11:22:04
15 [报告]
发表于 2013-07-30 11:39 |只看该作者
谢谢10楼!问题解决了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP