awkコマンドを使用して四角形を作成する

awkコマンドを使用して四角形を作成する

というファイルがあります実践数字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

おすすめ記事