免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
1
戌狗
日期:2013-10-24 11:22:04
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-07-30 09:11 |显示全部楼层 |倒序浏览
我想在文件的特定的列插入空格!例如:
1234567890123456789012345678901234567890123456789012345678901234567890
                 1                2                 3                4                 5                 6
X1        511076777-2       2196262.51    1 1951076777-1         1191350 11962001
X1        511076777-2       2196262.51 196 3901076777-1         1196325 12011751
X1        511076777-2       2196262.51 391 5851076777-2         2191350 21962001
X1        511076777-2       2196262.51 586 7801076777-2         2196325 22011751
X1        611076777-2       2193862.51     1 1951076777-1         1188950 11938001
X1        611076777-2       2193862.51 196 3901076777-1         1193925 11987751
X1        611076777-2       2193862.51 391 5851076777-2         2188950 21938001
X1        611076777-2       2193862.51 586 7801076777-2         2193925 21987751
我想在8列和9列,30列和31列,48列和49列之间插入空格
我觉得用sed应该可以的!
可是怎么写?
谢谢

论坛徽章:
1
戌狗
日期:2013-10-24 11:22:04
2 [报告]
发表于 2013-07-30 09:25 |显示全部楼层
对不起!我指第三行以后的数据!第一第二是我加标识的行,好数列的!

论坛徽章:
1
戌狗
日期:2013-10-24 11:22:04
3 [报告]
发表于 2013-07-30 09:31 |显示全部楼层
X1        511076777-2       2196262.51     1 1951076777-1         1191350 11962001
X1        511076777-2       2196262.51 196 3901076777-1         1196325 12011751
X1        511076777-2       2196262.51 391 5851076777-2         2191350 21962001
原始的数据!
我想变成
X1        5 11076777-2       2196262.5 1     1 195 1076777-1         1191350 1196200 1
X1        5 11076777-2       2196262.5 1 196 390 1076777-1         1196325 1201175 1
X1        5 11076777-2       2196262.5 1 391 585 1076777-2         2191350 2196200 1
插入空格!

论坛徽章:
1
戌狗
日期:2013-10-24 11:22:04
4 [报告]
发表于 2013-07-30 09:33 |显示全部楼层
sed或awk都可以实现的吧!

论坛徽章:
1
戌狗
日期:2013-10-24 11:22:04
5 [报告]
发表于 2013-07-30 09:42 |显示全部楼层
谢谢!我去试一试!

论坛徽章:
1
戌狗
日期:2013-10-24 11:22:04
6 [报告]
发表于 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列后加个空格!

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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP