как можно изменить регистр символов (с нижнего на верхний и наоборот)? одновременно

как можно изменить регистр символов (с нижнего на верхний и наоборот)? одновременно

вход

   > 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

(справочник по сопоставлению символов)

Связанный контент