मैं एक स्ट्रिंग से दो संख्यात्मक मूल्यों को खींचने की कोशिश कर रहा हूं और उन्हें चर का उपयोग करके असाइन कर रहा हूं 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); }'
... अजगर की तरह, लेकिन उस विशेष वाक्यविन्यास में मौजूद नहीं है awk
। क्या ऐसा कुछ और संभव है?
ध्यान दें कि पठनीयता वास्तव में एक चिंता का विषय नहीं है, बस लंबाई है।