我旁边AWK oneliner:AWK:CONCAT字符串在字典价值数
{dict[$2"@"$6]=($(NF-2)/($(NF-2)+$NF))*100 } END {for (a in dict) { printf "%s %d :" , a, int(dict[a]) }}
我需要什么,是添加到
($(NF-2)/($(NF-2)+$NF))*100 " out of" $(NF-2)+$NF
所以我想每个字典组合键的值awk计算所有数学,然后编写字符串并将其作为字典值。我已经尝试过一些空格和括号的组合,但仍然没有运气。
瓦尔从输入流填充:
$2 - host , not unique in input stream
$3 - partition , not unique in input stream
$NF - space avail
$NF-2 - space used
$(NF-2)+$NF - gives you overall capacity of partiton
输出是
80% [email protected]/local/1
输出预期:
80% [email protected]/local/1 out of 112G
------------- ---------解决方案-----------------------------------
下面有很好的接触,我解决了这个问题。问题是我在printf部分中执行了int(),即截断了输出。尽管如此,我进一步遇到了其他问题,因此我的最终代码与我预期的不同,它会提出问题。
'{key=($2 "@" $6 " out of " int((($(NF-2)+$NF)/1000)/1000) "GB") ; dict[key]=($(NF-2)/($(NF-2)+$NF))*100 } END {for (a in dict) { printf "%s , %d :" , a, int(dict[a]) }}'
I`ve移动“出”部分辞典键和能力,因为字典值不能在我的情况的字符串,futher我将它与INT进行比较。
我已经添加了详细信息,但它们在我的问题范围内的重要性不高。问题是,如何将数学结果(字符串+数学结果)连接到字典中。我开始认为awk有这个问题。 – 2012-08-01 18:31:05