というファイルがあります実践数字1、2、3、4、5は異なる行にあります。 AWKコマンドを使用してこの数値の2乗を生成したいと思います。
これを行うには、次のコマンドを作成しました。
awk 'BEGIN { a = $1; a = a ^ 2; print "a =", a }' prac
ただし、出力は次のようになります。a = 0
私の間違いを教えてください
ベストアンサー1
はい、コードがBEGIN
ブロックにあるからです。特殊BEGIN
ブロックは一度だけ実行されます。今後最初の入力ファイルから入力の最初の行を読み込みます。 (再び特殊END
ブロックが一度トリガされます。後ろに入力の最後の行をお読みください)コードブロックを実行したい各ワイヤー:
awk '{ printf("a = %s\n", $1*$1) }' prac
または元のコードに近い。
awk '{ a = $1*$1; print "a =", a }' prac