请教:如何在linux或者vim下处理这类文本文件的查找替换问题?
文本格式如下,数字之间是空格,有负数,小数是5位或者6位:9 -2.388184 387.789551 -16.617188 5.000000 5.000000
54 -14.545044 391.809570 -13.232910 12.000000 12.000000
54 -59.005737 387.847656 -14.665039 8.000000 8.000000
19 -69.624573 241.282227 2.563965 7.000000 7.000000
9 -31.060669 381.822754 -15.930663 5.000000 5.000000
19 -96.411621 232.896484 0.444336 7.000000 7.000000
操作目标:
1、查找在第一个空格前的数为相同的情况下(如都是9或者都是54开头的的行),同时处理前三个数和后两
个数,处理方法:让前三个数和后两个数分别以0.1到1或1到无穷大的倍数同时增加。并且还要保持6位小
数,这个倍数能在命令行里手工输入。
这个文件是一个软件里生成的,而后手工批量处理时没有找到好的办法,只有在linux或vim或其他可能下
面来尝试,有朋友能够帮忙解决么? 没有人能帮忙么?是问题说的不清楚,还是太简单了?我没有在linux下面使用的经验,只是想得到解决方法!寻求帮助! 让前三个数和后两个数分别以0.1到1或1到无穷大的倍数同时增加
这句话没看懂。。。 其实用C/C++更好实现 [quote]原帖由 [i]Flyinmorning[/i] 于 2007-12-21 18:49 发表 [url=http://linuxpk.linuxpk.com/redirect.php?goto=findpost&pid=40853&ptid=12588][img]http://linuxpk.linuxpk.com/images/common/back.gif[/img][/url]
其实用C/C++更好实现 [/quote]
C/C++处理这点儿小事,没问题。
PERL处理字符串更好 :victory: LZ的要求确实没看懂... 让前三个数和后两个数分别以0.1到1或1到无穷大的倍数同时增加,意思就是同时乘以0.1到1或1到无穷大这样的数,在写回原位去。感谢两位版主,问题解决,用awk就行了,awk处理这种数字还行,用到sprintf函数:) 控制小数。:victory: *** 作者被禁止或删除 内容自动屏蔽 *** 我也是没看懂楼主的要求
页:
[1]