我有一个文件,它有多个列,我想在其中对"编辑"部分中显示的每一行的$3
和$NF
求和,该部分正在工作,现在在列cold-data
下可见。
原始数据
Project_Name Volume_Name InactiveTier PhysicalBlocks SSDtier GRIDtier
cayman fsx3008_cayman 80289 85639 85702 0
cayman fsx3008_caymans 0 72802 3516 69553
cch fsx3008_cch 0 73116 3400 69847
test fsx3008_test 0 3698 1193 2627
test fsx3008_test1 0 2 26 0
dtsoio fsx3008_dts1 74068 89596 89740 0
dtsoio fsx3008_dts2 0 496843 188528 314897
arns fsx3008_arns1 0 852 682 451
arns fsx3008_arncs 0 397413 13866 383700
arns fsx3008_arns2 28834 58472 63862 0
arns fsx3008_ceres_ar0 0 11028350 105679 10929149
arns fsx3008_ceres_ar1 0 6248810 151129 6108160
arns fsx3008_ceres_ar2 0 5350713 90462 5262179
arns fsx3008_ceres_ar3 0 4027086 61709 3974189
arns fsx3008_ceres_ar4 0 1244903 45666 1200614
arns fsx3008_ceres_ar5 0 1129566 52327 1077901
所需(示例视图(:
Project_Name Volume_Name InactiveTier PhysicalBlocks SSDtier GRIDtier Cold-Data PercentageRatio PercentageRatioAvg
cayman fsx3008_cayman 80289 85639 85702 0 80289 93.75 45.12
编辑:
很抱歉造成混乱。
以下是o尝试的内容,也希望打印这些列。
#!/bin/bash
printf '%s %s %s %s %s %s %s %sn' Project_Name Volume_Name InactiveTier PhysicalBlocks SSDtier GRIDtier Cold-Data ratio
gawk 'FNR > 1 { print $1,$2,$3,$4,$5,$6,$3+$NF, $8 = $7/$4}1' ttk
- 但是,我无法获得
PercentageRatio
列下的%
,这应该是Cold-Data/PhysicalBlocks*100
的结果 - 其次,如果有一种方法可以基于
Project_Name
获得Avg%,因为我们在某些Project_Name
下有多个卷,例如cayman
或CCD_ 10
输出如下:
Project_Name Volume_Name InactiveTier PhysicalBlocks SSDtier GRIDtier Cold-Data PercentageRatio
cayman fsx3008_cayman 80289 85639 85702 0 80289 0
cayman fsx3008_cayman 80289 85639 85702 0 0
cayman fsx3008_caymans 0 72802 3516 69553 69553 0
cayman fsx3008_caymans 0 72802 3516 69553 0
cch fsx3008_cch 0 73116 3400 69847 69847 0
cch fsx3008_cch 0 73116 3400 69847 0
test fsx3008_test 0 3698 1193 2627 2627 0
test fsx3008_test 0 3698 1193 2627 0
test fsx3008_test1 0 2 26 0 0 0
test fsx3008_test1 0 2 26 0 0
dtsoio fsx3008_dts1 74068 89596 89740 0 74068 0
dtsoio fsx3008_dts1 74068 89596 89740 0 0
dtsoio fsx3008_dts2 0 496843 188528 314897 314897 0
dtsoio fsx3008_dts2 0 496843 188528 314897 0
arns fsx3008_arns1 0 852 682 451 451 0
arns fsx3008_arns1 0 852 682 451 0
arns fsx3008_arncs 0 397413 13866 383700 383700 0
arns fsx3008_arncs 0 397413 13866 383700 0
arns fsx3008_arns2 28834 58472 63862 0 28834 0
arns fsx3008_arns2 28834 58472 63862 0 0
arns fsx3008_ceres_ar0 0 11028350 105679 10929149 10929149 0
arns fsx3008_ceres_ar0 0 11028350 105679 10929149 0
arns fsx3008_ceres_ar1 0 6248810 151129 6108160 6108160 0
arns fsx3008_ceres_ar1 0 6248810 151129 6108160 0
arns fsx3008_ceres_ar2 0 5350713 90462 5262179 5262179 0
arns fsx3008_ceres_ar2 0 5350713 90462 5262179 0
arns fsx3008_ceres_ar3 0 4027086 61709 3974189 3974189 0
arns fsx3008_ceres_ar3 0 4027086 61709 3974189 0
arns fsx3008_ceres_ar4 0 1244903 45666 1200614 1200614 0
arns fsx3008_ceres_ar4 0 1244903 45666 1200614 0
arns fsx3008_ceres_ar5 0 1129566 52327 1077901 1077901 0
arns fsx3008_ceres_ar5 0 1129566 52327 1077901 0
我不明白你对#3的意思,但对于#1#2,你可以简单地执行:
printf '%s %s %sn' Project_Name Volume_Name cold_data
awk 'FNR > 1 { print $1,$2,$3+$NF }' ttk