私は文字列から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 -V
stdin からのものであると仮定すると、私は現在次のものを持っています:
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
。他に可能なことはありますか?
読みやすさは本当に問題ではなく、長さだけに注意してください。