我试图在KB单元(盖KB: 7606353 )中搜索下面的数字,这样它将显示为(复盖GB: 7.25 ),我尝试了许多awk选项将下面的数字从KB单元更改为GB,以及其他复杂的工具,我使用这些工具将输出发送到文件中,然后再使用,我的目标是像一个awk那样找到后面的数字(复盖KB:),然后除以/1024/1024,然后改为GB .我最大的努力是
awk '($NF == ($NF+0)){printf("%s %6.2f\n",$0,$10/1024/1024)}END{print ""}'
但是,这将在行尾显示我所需的数字,而我需要替换it..Tried -F来削减一些列,并且也没有得到所需的输出。
来源:
XX YY ZZ checknpr Y checkagain DEV Cover KB: 7606353, TARGET GB: 1048576
XX YY ZZ checknpr Y checkagain DEV Cover KB: 7268433, TARGET GB: 1048576
XX YY ZZ checknpr Y checkagain DEV Cover KB: 6895144, TARGET GB: 1048576
XX YY ZZ checknpr Y checkagain DEV Cover KB: 6506311, TARGET GB: 1048576
XX YY ZZ checknpr Y checkagain DEV Cover KB: 5590773, TARGET GB: 1048576
XX YY ZZ checknpr Y checkagain DEV Cover KB: 5192929, TARGET GB: 1048576
XX YY ZZ checknpr Y checkagain DEV Cover KB: 4645949, TARGET GB: 1048576
改为:
XX YY ZZ checknpr Y checkagain DEV Cover GB: 7.25, TARGET GB: 1048576
XX YY ZZ checknpr Y checkagain DEV Cover GB: 6.93, TARGET GB: 1048576
XX YY ZZ checknpr Y checkagain DEV Cover GB: 6.58, TARGET GB: 1048576
XX YY ZZ checknpr Y checkagain DEV Cover GB: 6.20, TARGET GB: 1048576
XX YY ZZ checknpr Y checkagain DEV Cover GB: 5.33, TARGET GB: 1048576
XX YY ZZ checknpr Y checkagain DEV Cover GB: 4.95, TARGET GB: 1048576
XX YY ZZ checknpr Y checkagain DEV Cover GB: 4.43, TARGET GB: 1048576
发布于 2021-12-22 20:46:52
此awk
工作时不知道条件的字段号。
$ awk '{ for(i=1;i<=NF;i++){ if($i~/^KB:/){ $i="GB:";
$(i+1)=sprintf("%.2f,",$(i+1)/1024^2) } } }1' file
XX YY ZZ checknpr Y checkagain DEV Cover GB: 7.25, TARGET GB: 1048576
XX YY ZZ checknpr Y checkagain DEV Cover GB: 6.93, TARGET GB: 1048576
XX YY ZZ checknpr Y checkagain DEV Cover GB: 6.58, TARGET GB: 1048576
XX YY ZZ checknpr Y checkagain DEV Cover GB: 6.20, TARGET GB: 1048576
XX YY ZZ checknpr Y checkagain DEV Cover GB: 5.33, TARGET GB: 1048576
XX YY ZZ checknpr Y checkagain DEV Cover GB: 4.95, TARGET GB: 1048576
XX YY ZZ checknpr Y checkagain DEV Cover GB: 4.43, TARGET GB: 1048576
https://stackoverflow.com/questions/70454693
复制相似问题