当前位置: 技术问答>linux和unix
请教:如何在linux或者vim下处理这类文本文件的查找替换问题?
来源: 互联网 发布时间:2016-02-22
本文导语: 文本格式如下,数字之间是空格,有负数,小数是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.2822...
文本格式如下,数字之间是空格,有负数,小数是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或其他可能下
面来尝试,有朋友能够帮忙解决么?
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或其他可能下
面来尝试,有朋友能够帮忙解决么?
|
大概的思路是先sort
然后用awk处理,awk处理这个问题还是很轻松的
然后用awk处理,awk处理这个问题还是很轻松的