вход
> a='Vikas'
> echo $a
Vikas
Мой требуемый вывод:
echo $a | <some command>
vIKAS
решение1
$ echo Vikas | LC_ALL=C tr a-zA-Z A-Za-z
vIKAS
Утилита tr
переводит символы; она принимает два аргумента, представляющих наборы символов; затем она копирует стандартный ввод в стандартный вывод, заменяя каждый символ, найденный в первом наборе, соответствующим символом во втором наборе. В этом приложении она заменяет строчные буквы на заглавные и наоборот. Смотритестраница руководства tr(1)для получения подробной информации и для другой обработки, которую tr
можно выполнить.
решение2
Вы можете использовать команду tr с опциями [:upper:] и [:lower:], например:
echo "aBcDeF" |tr '[:upper:][:lower:]' '[:lower:][:upper:]'
AbCdEf
Также вы можете использовать команду sed (расшифровывается как «Stream editor»), например так:
echo "abcd ABCD" |sed 'y/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/'
sed более гибок, это значит, что вы можете определить любое сопоставление символов. Например, вы можете преобразовать цифры в хакерские буквы с помощью этой команды:
echo "52065218802365" |sed 'y/0123456789/OIZEhSGLBP/'
SZOGSZIBBOZEGS