我有一个如下所示的数据文件:
xyz123 2.000 -0.3974 0.0 hij123
6.0 lmn123
8.7 efg123
13.9 uvw123
28.5 rst123
abc123 10.000 0.1943 0.0 wxy123
10.7 xyz123
19.9 pqr123
20.6 stu123
20.6 klm123
def123 50.000 -0.2595 19.2 jkl123
26.1 stu123
27.1 def123
27.1 ghi123
27.6 abc123
紫外线123 15.000-0.3635
lmn123 40.000 -0.3695 19.2 jkl123
26.1 stu123
27.1 def123
27.1 ghi123
27.6 abc123
我需要把它转换成:
xyz123,2.000,-0.3974,0.0,hij123
xyz123,2.000,-0.3974,6.0,lmn123
xyz123,2.000,-0.3974,8.7,efg123
xyz123,2.000,-0.3974,13.9,uvw123
xyz123,2.000,-0.3974,28.5,rst123
abc123,10.000,0.1943,0.0,wxy123
abc123,10.000,0.1943,10.7,xyz123
abc123,10.000,0.1943,19.9,pqr123
abc123,10.000,0.1943,20.6,stu123
abc123,10.000,0.1943,20.6,klm123
def123,50.000,-0.2595,19.2,jkl123
def123,50.000,-0.2595,26.1,stu123
def123,50.000,-0.2595,27.1,def123
def123,50.000,-0.2595,27.1,ghi123
def123,50.000,-0.2595,27.6,abc123
紫外线123,15.000,-0.3635
lmn123,40.000,-0.3695,19.2,jkl123
lmn123,40.000,-0.3695,26.1,stu123
lmn123,40.000,-0.3695,27.1,def123
lmn123,40.000,-0.3695,27.1,ghi123
lmn123,40.000,-0.3695,27.6,abc123
如何使用Python、AWK或sed实现这一点?你知道吗
更新:如果您注意到输入数据中有一行看起来像“uvw12315.000-0.3635”,那么当我使用aix中的python代码时,这一行会被弄乱。有没有一种方法可以修改您的代码并正确输出像我显示的那样的行?你知道吗
下面是一个Python解决方案:
它跟踪每一列的最新值(在
prev
),并使用该值填充当前行中缺少的列。你知道吗分成多行:
执行
$1 = $1
强制使用新的OFS
重新组装行。你知道吗你可以试试这样的开始-
相关问题 更多 >
编程相关推荐