我有两个文件,一个包含:
2035.00 0 0 70 70 90 100 100 100 100 100 100 100 100 100 100 100 100 100
2038.00 0 0 70 70 70 100 100 100 100 100 100 100 100 100 100 100 100 100
2040.00 0 0 60 60 80 80 80 80 80 80 80 100 100 100 100 100 100 100
,另一个包含:
2035.00 0 0 70 70 90 100 100 100 100 100 100 100 100 100 100 100 100 100
2036.00 0 0 70 70 90 100 100 100 100 100 100 100 100 100 100 100 100 100
2037.00 0 0 70 70 90 100 100 100 100 100 100 100 100 100 100 100 100 100
2038.00 0 0 70 70 70 100 100 100 100 100 100 100 100 100 100 100 100 100
2039.00 0 0 70 70 70 100 100 100 100 100 100 100 100 100 100 100 100 100
2040.00 0 0 60 60 80 80 80 80 80 80 80 100 100 100 100 100 100 100
我希望用第一列的第一个值中的连续数字填充空白,并在第二个文件中看到的后续字段中填写其他字段
提前致谢
安娜
答案 0 :(得分:2)
使用awk
awk 'NR==1{print $0 RS;a=$1;$1="";b=$0;next}
NF!=0{if (a+1!=$i)for (i=a+1;i<$1;i++) printf "%.2f%s\n\n", i,b;print $0 RS;a=$1;$1="";b=$0;}' file
答案 1 :(得分:0)
您可以尝试:
awk -f a.awk file
其中a.awk
是:
NF>0{
a[($1+0)]=$0
}
END {
for (i=2035; i<=2040; i+=0.5) {
if (i in a) {
b=a[i]; q=i; c=b
} else {
b=c
z=sprintf("%.2f ",i)
sub(/^[^[:blank:]]* /,z,b)
}
print b
}
}
输出:
2035.00 0 0 70 70 90 100 100 100 100 100 100 100 100 100 100 100 100 100
2035.50 0 0 70 70 90 100 100 100 100 100 100 100 100 100 100 100 100 100
2036.00 0 0 70 70 90 100 100 100 100 100 100 100 100 100 100 100 100 100
2036.50 0 0 70 70 90 100 100 100 100 100 100 100 100 100 100 100 100 100
2037.00 0 0 70 70 90 100 100 100 100 100 100 100 100 100 100 100 100 100
2037.50 0 0 70 70 90 100 100 100 100 100 100 100 100 100 100 100 100 100
2038.00 0 0 70 70 70 100 100 100 100 100 100 100 100 100 100 100 100 100
2038.50 0 0 70 70 70 100 100 100 100 100 100 100 100 100 100 100 100 100
2039.00 0 0 70 70 70 100 100 100 100 100 100 100 100 100 100 100 100 100
2039.50 0 0 70 70 70 100 100 100 100 100 100 100 100 100 100 100 100 100
2040.00 0 0 60 60 80 80 80 80 80 80 80 100 100 100 100 100 100 100