计算行百分比 Bash 一行命令



我需要知道如何使用单行 bash 命令计算行百分比。假设我的文件内容test.tsv如下所示:

Item Sort   Clicks A    Clicks B
Item 1  100 50
Item 2  60  40

我想知道每次点击按项目排序的百分比是多少,所以它看起来像:

Item Sort   Clicks A    Clicks B
Item 1  66.70%  33.33%
Item 2  60% 40%

关于如何做到这一点的任何想法?

使用 awk 做这种事情,bash 不做实数/浮点运算。

awk 脚本:

NR==1 { print }
NR>1  { printf("%s %d %.2f%% %.2f%%n"
              , $1, $2
              , ($3*100/($3+$4))
              , ($4*100/($3+$4))
              ) }

这意味着:

  • 如果行号为 1,只需按原样打印即可。
  • 对于其他行,按原样打印第一列和第二列,但计算第 3 列和第 4 列的相应百分比。

在一行中:

awk 'NR==1{print}NR>1{printf("%s %d %.2f%% %.2f%%n", $1, $2, ($3*100/($3+$4)), ($4*100/($3+$4)))}' test.tsv

相关内容

  • 没有找到相关文章

最新更新