我正在尝试从一个字符串中提取两个数值,并使用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
文件中使用(我希望在其中使用该东西)很容易导致config文件中的行很长,所以我想知道是否有办法组合这两个变量分配到一个语句中以节省空间...或其他任何方式从输入中收集这两个变量并节省空间。
我在想类似的东西:
awk '{ maj, min = +gensub(/([0-9]+)\.([0-9]+).*/, "\\1 \\2", "g", $2); }'
...有点像Python,但是该特定语法在中不存在awk
。还有其他可能吗?
请注意,可读性并不是真正的问题,只是长度。