문자열에서 두 개의 숫자 값을 가져 와서 변수에 할당하려고합니다 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
쉽게 발생할 수 있습니다 (I이 물건을 사용할 수 있도록 노력하겠습니다) 파일 정말 이 두 변수를 결합 할 수있는 방법이 있는지 궁금 해요, 그래서 config 파일에서 긴 줄 공간을 절약하기 위해 하나의 문장으로 할당 또는 입력과 공간 에서이 두 변수를 수집하는 다른 방법.
나는 다음과 같은 것을 생각하고있다 :
awk '{ maj, min = +gensub(/([0-9]+)\.([0-9]+).*/, "\\1 \\2", "g", $2); }'
... 파이썬과 비슷하지만 특정 구문은에 존재하지 않습니다 awk
. 가능한 다른 것이 있습니까?
가독성은 실제로 문제가 아니며 길이에 불과합니다.