对文件中的所有数字进行平方

对文件中的所有数字进行平方

请有人与我分享,或者向我展示 Linux 命令的脚本,该脚本从文件中读取直到 EOF 并计算所有读取数字的平方。该计算的结果必须存储在输出文件中。

答案1

$ echo 3.14 >> /tmp/numbers
$ echo 2 >> /tmp/numbers
$ echo 4.0 >> /tmp/numbers

$ awk '{print $1 * $1}' < /tmp/numbers
9.8596
4
16
$ awk '{print $1 * $1}' < /tmp/numbers > /path/to/OutputFile

答案2

使用ksh93bc作为计算服务,假设文件numbers每行包含一个数字:

bc -l |&
bc_pid="$!"

while read num; do
    print -p "$num * $num"
    read -p sqr
    printf '%g*%g = %g\n' "$num" "$num" "$sqr"
done <numbers

kill "$bc_pid"

中的等效内容bash

coproc bc -l
bc_pid="$!"

while read num; do
    printf '%g * %g\n' "$num" "$num" >&"${COPROC[1]}"
    read sqr <&"${COPROC[0]}"
    printf '%g*%g = %g\n' "$num" "$num" "$sqr"
done <numbers

kill "$bc_pid"

相关内容