Много раз я запускал команду со всеми буквами в верхнем регистре (возможно, потому, что CapsLock был включен), и я нажал Enter, прежде чем это осознал.
Как я могу запустить последнюю команду со всеми буквами преобразован в нижний регистр?
Ключ находится в котировках ` (backticks), который запускает вывод как команду.
здесь приходит ответ программистов .... используйте python:
`echo "print '!!'.lower()" | python`
Или Ruby:
`echo "print '!!'.downcase" | ruby`
Или Perl (возможно, мой любимый):
`perl -e "print lc('!!');"`
Или PHP:
`php -r "print strtolower('!!');"`
Или Awk:
`echo "!!" | awk '{ print tolower($1) }'`
Или Sed:
`echo "!!" | sed 's/./\L&/g'`
Или Bash:
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^