私は文字列から2つの数値を引き出し、それらを使用して変数に割り当てようとしていますawk(gawk私が特に使用しているものです)。tmuxバージョン文字列からメジャーバージョン番号とマイナーバージョン番号をawk変数に取り出したい:
- 入力:
tmux 2.8;maj == 2そしてmin == 8 - 入力:
tmux 1.9a;maj == 1そしてmin == 9 - 入力:
tmux 2.10;maj == 2そしてmin == 10
私の入力がtmux -Vstdin からのものであると仮定すると、私は現在次のものを持っています:
tmux -V | awk '{
maj = +gensub(/([0-9]+)\..*/, "\\1", "g", $2);
min = +gensub(/.*\.([0-9]+).*/, "\\1", "g", $2);
# ...do something with maj and min...
}'
これは機能しますが、tmuxの多くのユーザーが知っているようif-shellに、.tmux.confファイルで使用すると(これを使用したい場合)、構成ファイルの行が非常に長くなる可能性があるため、これら2つの変数を組み合わせる方法があるかどうか疑問に思いますスペースを節約するための1つのステートメントへの割り当て...または、入力から2つの変数を収集してスペースを節約するためのその他の方法。
私は次のようなことを考えています:
awk '{ maj, min = +gensub(/([0-9]+)\.([0-9]+).*/, "\\1 \\2", "g", $2); }'
... Pythonのようなものですが、その特定の構文はには存在しませんawk。他に可能なことはありますか?
読みやすさは本当に問題ではなく、長さだけに注意してください。