कई बार मैंने अपरकेस (शायद क्योंकि CapsLockचालू था) में सभी पत्रों के साथ एक कमांड चलाया है , और मैंने Enterइसे साकार करने से पहले दबाया ।
मैं निचले अक्षरों में तब्दील सभी अक्षरों के साथ अंतिम कमांड कैसे चला सकता हूं?
कई बार मैंने अपरकेस (शायद क्योंकि CapsLockचालू था) में सभी पत्रों के साथ एक कमांड चलाया है , और मैंने Enterइसे साकार करने से पहले दबाया ।
मैं निचले अक्षरों में तब्दील सभी अक्षरों के साथ अंतिम कमांड कैसे चला सकता हूं?
जवाबों:
आपको लगता है कि पूरा कर सकते हैं (मैं इसे कहते निम्नलिखित छोटे समारोह जोड़कर ??
बहुत सरल हो सकता है, लेकिन आप इस इच्छानुसार बदल सकते हैं) अपने में .bashrc
फ़ाइल:
?? () { "${@,,}"; }
अगला, जब आप चलेंगे:
?? !!
अंतिम कमांड लोअरकेस में सभी अक्षरों के साथ चलाया जाएगा।
!!
: यह बैश के इतिहास के उपकरण का हिस्सा है, विशेष रूप से, यह अंतिम कमांड रन तक फैलता है । इसलिए, उदाहरण के लिए, echo !!
इस विशेष शेल सत्र में अंतिम कमांड रन आउट को प्रिंट करेगा।"${@,,}
: निर्माण सभी निचले अक्षरों में परिवर्तित चर ${foo,,}
की सामग्री को परिवर्तित करेगा$foo
। $@
स्थितीय मापदंडों का सरणी है। जब किसी फ़ंक्शन के अंदर उपयोग किया जाता है, तो यह उस फ़ंक्शन को दिए गए मापदंडों तक विस्तारित होता है।इसलिए, "${@,,}"
जो भी फंक्शन में पास किया गया था उसे लोअरकेस में बदल देगा और फिर उसे निष्पादित करेगा। इसलिए, ??
फ़ंक्शन !!
को एक पैरामीटर के रूप में चलाने से अंतिम कमांड को लोअरकेस में बदल जाएगा और इसे चलाएगा।
"!!"
।
??
अपने तर्क पत्रों को लोअरकेस में परिवर्तित करता है और !!
वर्तमान कमांड में पिछली कमांड को स्वचालित रूप से लिखता है (इसलिए इसे ??
लेता है) पिछले कमांड को तर्क दें)।
`गूंज !! | tr '[: अपर:]' '[: लोअर:]' `
कुंजी `
(बैकटिक्स) कोटेशन में है - जो आउटपुट को कमांड के रूप में चलाता है।
tr
मेरी पहली पसंद भी होगी। यह भी काम करता है ( $( echo !! | tr '[A-Z]' '[a-z]')
यहाँ एक प्रोग्रामर जवाब आता है .... अजगर का उपयोग करें:
`echo "print '!!'.lower()" | python`
या रूबी:
`echo "print '!!'.downcase" | ruby`
या पर्ल (शायद मेरा पसंदीदा):
`perl -e "print lc('!!');"`
या PHP:
`php -r "print strtolower('!!');"`
या अवाक्:
`echo "!!" | awk '{ print tolower($1) }'`
या पाल:
`echo "!!" | sed 's/./\L&/g'`
या बैश:
str="!!" ; ${str,,}
या zsh
echo "A='!!' ; \$A:l" | zsh
या अगर आपके पास NodeJS है:
`echo "console.log('!!'.toLowerCase());" | node`
आप भी इस्तेमाल कर सकते हैं dd
(लेकिन मैं नहीं!):
`echo "!!" | dd conv=lcase 2> /dev/null`
आप नौकरी करने के लिए एक छोटी स्क्रिप्ट भी बना सकते हैं:
sudo bash -c 'cat << EOF > /usr/local/bin/lower
#!/usr/bin/python
import fileinput
print "".join(fileinput.input()).lower(),
EOF' && sudo chmod +x /usr/local/bin/lower
जो आप इस तरह का उपयोग करें:
`echo !! | lower`
और एक के साथ sed
,
$(echo !! | sed 's/^\(.*\)$/\L\1/g')
उदाहरण:
$ SUDO APT-GET UPDATE
SUDO: command not found
$ $(echo !! | sed 's/^\(.*\)$/\L\1/g')
आउटपुट:
$(echo SUDO APT-GET UPDATE | sed 's/^\(.*\)$/\L\1/g')
[sudo] password for avinash:
0% [Waiting for headers] [Waiting for headers] [Waiting for headers] [Connectin^
!!:l
।