преобразование регистра символов в верхний регистр в нижний регистр и наоборот - PullRequest
4 голосов
/ 25 января 2012

Я пытался преобразовать строчные буквы в прописные.Я сталкивался с различными альтернативами, такими как один листинг в StackOverflow вопрос Однако то, что я увидел, это только что напечатано.Я хочу сохранить его в другой переменной, которую я смогу использовать позже.Может кто-нибудь сказать, как мне этого добиться?

Ответы [ 6 ]

6 голосов
/ 25 января 2012

Ваш ввод $a. Новая переменная $b.
(заимствовано из здесь , написанного @ ghostdog74)

с использованием tr:

b=$( tr '[A-Z]' '[a-z]' <<< $a)

если вы используете tcsh, тогда используйте echo вместо <<<:

set b=`echo "$a" | tr '[A-Z]' '[a-z]'`
3 голосов
/ 25 января 2012

с использованием bash 4,0 :

b=${a,,}
2 голосов
/ 14 мая 2014

Я знаю, что это старое сообщение, но я сделал этот ответ для другого сайта, поэтому я решил опубликовать его здесь:

тут приходит ответ программиста ....

Вверх -> ниже : использовать питон:

b=`echo "print '$a'.lower()" | python`

Или Рубин:

b=`echo "print '$a'.downcase" | ruby`

Или Perl (вероятно, мой любимый):

b=`perl -e "print lc('$a');"`

Или PHP:

b=`php -r "print strtolower('$a');"`

Или Awk:

b=`echo "$a" | awk '{ print tolower($1) }'`

Или Sed:

b=`echo "$a" | sed 's/./\L&/g'`

Или Bash 4:

b=${a,,}

Или NodeJS, если он у вас есть:

b=`echo "console.log('$a'.toLowerCase());" | node`

Вы также можете использовать dd (но я бы не стал!):

b=`echo "$a" | dd  conv=lcase 2> /dev/null`

ниже -> UPPER :

использовать Python:

b=`echo "print '$a'.upeer()" | python`

Или Рубин:

b=`echo "print '$a'.upcase" | ruby`

Или Perl (вероятно, мой любимый):

b=`perl -e "print uc('$a');"`

Или PHP:

b=`php -r "print strtoupper('$a');"`

или Awk:

b=`echo "$a" | awk '{ print toupper($1) }'`

Или Sed:

b=`echo "$a" | sed 's/./\U&/g'`

Или Bash 4:

b=${a^^}

Или NodeJS, если он у вас есть:

b=`echo "console.log('$a'.toUpperCase());" | node`

Вы также можете использовать dd (но я бы не стал!):

b=`echo "$a" | dd  conv=ucase 2> /dev/null`

Также, когда вы говорите 'shell', я предполагаю, что вы имеете в виду bash, но если вы можете использовать zsh, это так же просто, как

b=$a:l

для нижнего регистра и

b=$a:u

для прописных букв.

2 голосов
/ 25 января 2012

с использованием perl:

b=$( perl -e 'print lc <>;' <<< $a )
2 голосов
/ 25 января 2012

с использованием awk:

b=$( awk '{print tolower($0)}' <<< $a )
0 голосов
/ 04 февраля 2016

Все предыдущие ответы верны, я просто добавляю это, потому что нет необходимости объявлять переменные и т. Д., Если вы просто конвертируете тексты.

echo changethistoupper | tr [a-z] [A-Z]
echo CHANGETHISTOLOWER | tr [A-Z] [a-z]

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...