

単純な変数展開ではなく

[code]

    echo -e 1 2 3\\n4 5 6\\n7 8 9 |
    awk $1==1,$2==2,$3==3"
    
[/code]

とすると、当然1行目の1 2 3が取得できますが  
ここでパターンを変数をつかったらときどうやって取得できるでしょうか？

具体的に  
変数`aa="\$1==1,\$2==2,\$3==3"` 注意点としては`$n`や 等号 も変数に含めます。  
`awk 'eval aa'` ←のようなことをして、上記と同じ結果をえるにはどうしたらいいでしょうか？

[code]

    awk  -v a1=1 , a2=2,a3=3'$1==a1,$2==a2,$3==a3'
    
[/code]

のような単純なことではない点を再度申し上げます。


CC BY-SA 4.0
2019-08-15T03:57:19.187
57365
2019-08-29T10:27:09.683
2019-08-15T05:14:07.553
3060
35474
question
awk
awk パターンを変数で動的に設定できるのか


質問されている方の例とおり、条件式をシェル変数condに代入し、$condで参照すればよいと思いますが、いかがでしょうか。

[code]

    cond='$1==1&&$2==2&&$3==3';printf '1 2 3\n4 5 6\n7 8 9\n' | awk "$cond"
    
[/code]

【結果】

[code]

    1 2 3
    
[/code]


CC BY-SA 4.0
2019-08-29T10:27:09.683
57695
2019-08-29T10:27:09.683
35558
57365
answer