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