我有如下输入
46742 1 48276 48343 48199 48198
46744 1 48343 48344 48200 48199
46746 1 48344 48332 48201 48200
48283 3.58077402e+01 -2.97697746e+00 1.50878647e+02
48282 3.67231688e+01 -2.97771595e+00 1.50419488e+02
48285 3.58558188e+01 -1.98122787e+00 1.50894850e+02
第2个条目(如1)为整数的每个分段都像数千行,然后从第2个条目为实数(如3.58077402e + 01)开始
在任何事物出现之前,我必须先输入
*Revolved
*Gripped
*Crippled
46742 1 48276 48343 48199 48198
46744 1 48343 48344 48200 48199
46746 1 48344 48332 48201 48200
*Cracked
*Crippled
48283 3.58077402e+01 -2.97697746e+00 1.50878647e+02
48282 3.67231688e+01 -2.97771595e+00 1.50419488e+02
48285 3.58558188e+01 -1.98122787e+00 1.50894850e+02
所以我需要在这些位置输入特定的文本。值得一提的是,文件是用空格分隔的,而不是制表符分隔的,并且以*开头的文本必须在行的最左边,且不留空格。文件其余部分的格式也应保留。
与sed或awk有关的任何建议都将得到高度评价!开头的文本可以直接输入,因此这不是主要问题,因为那是文件的开头,第二行是有问题的,因此请确定第二个条目已变为实数。
一个awk
固定字符串:
awk 'BEGIN{print "*Revolved\n*Gripped\n*Crippled"}
match($2,"\+")&&!pr{print "*Cracked\n*Crippled";pr=1}1' yourfile
match($2,"\+")&&!pr
:当+
在$2
字段(实数)处找到char且pr
标志为时null
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句