ファイル内のすべての数字を二乗する

ファイル内のすべての数字を二乗する

どなたか、ファイルから EOF まで読み取り、読み取ったすべての数値の二乗を計算する Linux コマンドのスクリプトを教えていただけませんか。この計算の結果は、出力ファイルに保存する必要があります。

答え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

ksh93およびをコンピューティング サービスとして使用しbc、ファイルのnumbers各行に 1 つの数字が含まれていると仮定します。

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"

関連情報