我有两个文本文件,其内容如下:
data_1:473428800.0 0 0.000004 1.00 WETZTROPMCIL #4 columns, several lines
473429100.0 0 0.000002 1.00 WETZTROPMCIL
data_2:473428800.0 0 2.100000 1.00 DRYTROPMCIL #4 columns, several lines
473429100.0 0 2.200000 1.00 DRYTROPMCIL
我需要将一个文件的第三列的每一行添加到另一文件的第三列的各行中,并将这些总和替换为新文件中data_1的第三列,如下所示;
merged_data= data_1:473428800.0 0 2.1000004 1.00 WETZTROPMCIL #4 columns, several lines
473429100.0 0 2.2000002 1.00 WETZTROPMCIL
尝试:
paste data_1 data_2 | awk '{$3=sprintf("%.10g", $3+$8); NF=5; print}'
笔记:
我看到每个文件5个字段,而不是OP中所述的4个字段。
paste
将合并两个文件中的行。
awk
将看到每行包含10个字段的行。NF=5
告诉它仅保留来自的前5个data_1
。
浮点数以[s]printf
的格式打印%.10f
。这可能会或可能不会。请参阅man 3 printf
。
如果需要排序,可以用流程替换来完成:
paste <(sort [args] data_1) <(sort [args] data_2) | awk ...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句