如何计算shell中的百分比

时间:2016-08-24 04:18:42

标签: linux shell math awk percentage

我想计算shell中的百分比。但我无法做到。我的脚本是

#!/bin/bash
#n1=$(wc -l < input.txt) #input.txt is a text file with 10000 lines
n1=10000
n2=$(awk '{printf "%.2f", $n1*0.05/100}')
echo 0.05% of $n1 is  $n2

执行此脚本时既没有显示任何值也没有终止

2 个答案:

答案 0 :(得分:3)

如果您这样做,

awk将为您提供 n1非法字段名称,因为它在单引号内。 另外,为了避免awk继续读取标准输入,您应该将/dev/null作为文件传递。然后:

n2=$(awk -v n1="$n1" 'BEGIN {printf "%.2f", n1*0.05/100}' /dev/null)

答案 1 :(得分:1)

我建议您让awk计算记录本身,而不是启动一个新进程来计算文件中的记录,然后将其传递给awk,而不是在变量{{ 1}}。所以,你的整个脚本将成为:

NR
相关问题