どうも基本の基本をきちんと学ぶ必要がある段階のようなので、正解のスクリプトは敢えて示しません。ざっくり説明するのでわからない用語などは教科書を読んでください。教科書を持ってないならまず買ってください。
awkスクリプトは
からなるブロックの繰り返しで構築されるのが基本です。
ただしどちらかを省略することは出来ます。パターンを省略した場合は、「アクションの処理内容を、入力元の一行一行についてそれぞれ行なう」という指示になります。
質問のスクリプトは全体が{}で括ってあるので、これは「パターンが省略されたアクションがひとつだけ書いてある」と解釈されます。
アクションがスクリプトの実質的な内容です。
質問の2行目、3行目はそれぞれコマンドラインの引数の一番目と2番めを変数に代入する処理ですが、このままでは上で説明した通り、入力データが百行あったとすれば100回代入操作が繰り返されることになります。明らかに不要な処理です。入力を受け付ける前に一度だけ実行したいアクションを実現するにはパターンにBEGIN
を指定します。
質問の4-5行目にあるのはパターン/アクションの書き方です。アクションの中にこれを書いて入れ子にすることは出来ません。条件判定を行いたいなら、ifブロックを書きます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/02 12:56 編集
2020/06/02 15:56
2020/06/03 02:24
2020/06/03 07:49
2020/06/03 10:30 編集
2020/06/03 11:20
2020/06/03 14:09